次のクエリでは、いくつかのグループ化を行いたいが、いくつかのフィールドを含めたくない:
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 Server2008Expressを使用しています
編集:「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 Acreditados 84 625.00 2012-06-07 Politos 84 729.17 2012-06-07 Politos 84 520.83 2012-06-07 Politos 85584.502012-06-14アクーニャ 85584.502012-06-14アクーニャ 85584.502012-06-14アクーニャ 85584.502012-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 ..。