Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/01/2013, 09:15
Avatar de Huasi
Huasi
 
Fecha de Ingreso: mayo-2007
Mensajes: 83
Antigüedad: 17 años, 6 meses
Puntos: 2
Select con Group By parcial

Hola que tal, tengo una duda sobre un SP que necesito armar y no me devuelve la informacion tal cual la necesito. Necesito listar todas las cuentas de una empresa agrupando unicamente por cuenta la informacion que podran ver en la consulta. Esto no sucede porque me veo obligado a agrupar por otros campos (AC.DH y A.Fecha) cuando unicamente necesito que se agrupe por cuenta. Es decir, los datos que me devuelve son correctos, pero necesito que cada cuenta se muestre una sola vez y no varias veces como me esta pasando. ¿Es posible realizar una consulta asi? Aca les dejo la estructura de la tabla y la consulta.

Cuentas
Id (int pk)
Info (string)

Asientos
Id (int pk)
Fecha (datetime)

AsientoCuenta
AsientoId (int pk)
CuentaId (int pk)
Importe (float)
DH (string)

Código SQL:
Ver original
  1. DECLARE @EmpresaId INT = 88, @Desde datetime = '01/12/2013'
  2. SELECT c.id, C.Info,
  3. Debe = CASE WHEN AC.DH = 'D' AND A.Fecha < @Desde THEN isnull(SUM(ac.Importe),0) ELSE NULL END,
  4. Haber = CASE WHEN ac.DH = 'H' AND A.Fecha < @Desde THEN isnull(SUM(ac.Importe), 0) ELSE NULL END
  5. FROM Cuentas C
  6. LEFT JOIN AsientoCuenta AC ON C.Id = AC.CuentaId
  7. LEFT JOIN Asientos A ON A.Id = AC.AsientoId
  8. WHERE C.EmpresaId = @EmpresaId
  9. GROUP BY C.Id, C.Info, AC.DH, A.Fecha
  10. ORDER BY C.Info