在以下查询中,我想进行一些分组但不想包含一些字段:
SELECT C.id_credito, SUM(M.monto), M.fecha_mov, ISNULL(tg.nombre, tp.NombComp) AS Acreditados
FROM movimientos AS M
JOIN acreditados AS A ON A.id_acreditado = M.id_acreditado
JOIN creditos AS C ON C.id_credito = A.id_credito
JOIN cargos AS CA ON CA.id_movimiento = M.id_movimiento
OUTER APPLY (SELECT TOP 1 G.nombre FROM grupos G JOIN agrupaciones AG on AG.id_grupo = G.id_grupo WHERE AG.id_acreditado = A.id_acreditado) tg
OUTER APPLY (SELECT TOP 1 P.nombres+' '+P.apellido_paterno+' '+P.apellido_materno AS NombComp FROM personas P WHERE P.id_persona = A.id_persona) tp
WHERE M.tipo_mov = 0 AND M.fecha_mov < DATEADD(day, 14, GETDATE()) AND CA.tipo_cargo = 0
GROUP BY C.id_credito, M.fecha_mov
我不想包含的字段是 tg.nombre 和 tp.NombComp,因为当我包含它们时,这些字段没有正确分组。但是,如果我不将它们放在 GROUP BY 子句中,我会收到以下错误:
列 'tp.NombComp' 在选择列表中无效,因为它不包含在聚合函数或 GROUP BY 子句中。
你能帮我吗?我正在使用 SQL Server 2008 Express
编辑:我将展示一些示例,如果从查询中删除“ISNULL(tg.nombre, tp.NombComp) AS Acreditados”,则分组工作正常,因为您可以通过 id_credito 和 fecha_mov 看到第一组
id_credito monto fecha_mov 84 1875.00 2012-06-07 89 1875.00 2012-06-11 94 739.58 2012-06-11 85 2338.00 2012-06-14 ......
但是如果我将前面的字段添加到 GROUP BY 子句中,则分组不会按预期工作。
SELECT C.id_credito, SUM(M.monto), M.fecha_mov, ISNULL(tg.nombre, tp.NombComp) AS Acreditados
FROM movimientos AS M
JOIN acreditados AS A ON A.id_acreditado = M.id_acreditado
JOIN creditos AS C ON C.id_credito = A.id_credito
JOIN cargos AS CA ON CA.id_movimiento = M.id_movimiento
OUTER APPLY (SELECT TOP 1 G.nombre FROM grupos G JOIN agrupaciones AG on AG.id_grupo = G.id_grupo WHERE AG.id_acreditado = A.id_acreditado) tg
OUTER APPLY (SELECT TOP 1 P.nombres+' '+P.apellido_paterno+' '+P.apellido_materno AS NombComp FROM personas P WHERE P.id_persona = A.id_persona) tp
WHERE M.tipo_mov = 0 AND M.fecha_mov < DATEADD(day, 14, GETDATE()) AND CA.tipo_cargo = 0
GROUP BY C.id_credito, M.fecha_mov, tg.nombre, tp.NombComp
id_credito monto fecha_mov 84 625.00 2012-06-07 波利托斯 84 729.17 2012-06-07 波利托斯 84 520.83 2012-06-07 波利托斯 85 584.50 2012-06-14 阿库纳 85 584.50 2012-06-14 阿库纳 85 584.50 2012-06-14 阿库纳 85 584.50 2012-06-14 阿库纳 86 584.50 2012-06-14 Estrellas de Cuatro Vientos 86 584.50 2012-06-14 Estrellas de Cuatro Vientos 86 584.50 2012-06-14 Estrellas de Cuatro Vientos 86 584.50 2012-06-14 Estrellas de Cuatro Vientos ...