2010-12-23 11 views
7

Deseo saber si lo siguiente es posible.Agrupar por en subconsulta y consulta básica Servidor sql

que tienen una tabla de la que yo quiero recuperar 3 columnas de datos:

Día, Suma de horas trabajadas, la suma de las horas trabajadas con la condición

Mi consulta es

SELECT  Day, SUM(Regular + Extra + Overtime) AS [Potential Hours], 
         (SELECT  SUM(Extra + Regular + Overtime) AS Expr1 
         FROM   dbo.TICPlus_Effort_Billable_Only 
         WHERE  (Manager NOT LIKE '%manager1%')) AS [Billed Hours] 
FROM   Billable AS Billable1 
GROUP BY Day 

Con esta consulta obtengo la suma de todos los datos en la subconsulta para cada fila, pero me gustaría que la subconsulta que incluye la restricción se agrupe por día. ¿Es posible tener un grupo en la subconsulta para hacer esto, así que obtengo la suma diaria con la condición a diario?

espero que alguien me puede apuntar en la dirección correcta

Respuesta

13

No, usted no será capaz de hacer eso que la consulta SUB en la lista SELECT volverá entonces más que 1 Valor.

que tiene que hacer en una consulta SUB en la cláusula FROM

Algo así como

SELECT Day, 
     SUM(Regular + Extra + Overtime) AS [Potential Hours], 
     SubSum AS [Billed Hours] 
FROM Billable AS Billable1 LEFT JOIN 
     (
      SELECT Day, 
        SUM(Extra + Regular + Overtime) AS SubSum 
      FROM dbo.TICPlus_Effort_Billable_Only 
      WHERE (Manager NOT LIKE '%manager1%') 
      GROUP BY Day 
     ) s ON Billable1.Day = s.Day 
GROUP BY Day 
+0

Gracias por la aclaración. Muy apreciado. – Node17

Cuestiones relacionadas