1

valuehomebyの合計を示す以下の簡単なクエリがありますel2

クエリに別の列を追加し (select ステートメント 2 を参照)、valuehome期日が今日より前の場所のみを表示すると言うと、つまり、期日が過ぎている場合valuehome、結果には期日ごとの行が表示されるため、合計が失われます。

複数の期日がある場合でもvaluehome1 つの結果が表示されるように、合計を維持するにはどうすればよいですか。valuehome

SELECT     TOP (100) PERCENT el2, statpay, SUM(valuehome) AS Expr1
FROM         dbo.MBO450
GROUP BY el2, statpay
HAVING      (el2 LIKE 'C%') AND (statpay = 84)
ORDER BY el2


SELECT     TOP (100) PERCENT el2, statpay, SUM(valuehome) AS Expr1, duedate
FROM         dbo.MBO450
GROUP BY el2, statpay, duedate
HAVING      (el2 LIKE 'C%') AND (statpay = 84) AND (duedate <= CONVERT(DATETIME, '2013-07-24 00:00:00', 102))
ORDER BY el2

Nenad に感謝します - それはすばらしい助けです - where ステートメントで静的な日付を変更する方法を知っていますか

GROUP BYandに duedate を追加しないでくださいHAVING- グループ化する前に WHERE 条件で行をフィルタリングします:

SELECT el2, statpay, SUM(valuehome) AS Expr1
FROM dbo.MBO450
WHERE duedate <= CONVERT(DATETIME, '2013-07-24 00:00:00', 102))  

静的な日付が今日の日付になるように?

4

1 に答える 1

0

duedateに追加しないGROUP BYでください -グループ化する前に条件HAVINGで行をフィルタリングします:WHERE

SELECT el2, statpay, SUM(valuehome) AS Expr1
FROM dbo.MBO450
WHERE duedate <= CONVERT(DATETIME, '2013-07-24 00:00:00', 102))
GROUP BY el2, statpay
HAVING (el2 LIKE 'C%') AND (statpay = 84) 
ORDER BY el2

PS:TOP (100) PERCENT役に立たない

PPS: moveel2statpaycondition を行うこともできますWHERE

PPPS:WHERE duedate <= GETDATE()ダイナミック トゥデイに置き換えます

于 2013-07-24T15:59:51.297 に答える