SQL Serverの2つの日付間の価格列の合計に問題があります。2つの日付の間のSQL合計列
は、私はこのようなクエリがある:
SELECT
OSLP.SlpName as Salesman,
CAST(OINV.DocTotal as float) as Achiev,
OINV.TaxDate
FROM
OINV
INNER JOIN
INV1 ON INV1.DocEntry = OINV.DocEntry
INNER JOIN
OSLP ON OINV.SlpCode = OSLP.SlpCode
INNER JOIN
OITM ON INV1.ItemCode = OITM.ItemCode
INNER JOIN
OMRC ON OITM.FirmCode = OMRC.FirmCode
INNER JOIN
OCRD ON OINV.CardCode = OCRD.CardCode
WHERE
OSLP.SlpName LIKE '01-2 Ika'
AND OINV.TaxDate BETWEEN '20160804' AND '20160806'
GROUP BY
OSLP.SlpName, OINV.DocTotal, OINV.TaxDate
上記のクエリの結果はこのようなものです:floatとして
は私もCAST」でSUMを追加した(OINV.DocTotal )as Achiev "のようになります。
CAST(sum(OINV.DocTotal) as float) as Achiev
ただし、結果は正しくありません。
日にAchiev列の正しい結果が助けを4906230
感謝しなければなりません!
更新(解決済み) 私はこの問題を解決しました。クエリにはデータの重複があるため、SUMクエリには別個のものを追加するだけです。
問合せ:
SELECT
OSLP.SlpName as Salesman,
sum(CAST(INV1.Quantity as float)) as Qty,
sum(DISTINCT CAST(OINV.DocTotal as float)) as Achiev
FROM
OINV
INNER JOIN
INV1 ON INV1.DocEntry = OINV.DocEntry
INNER JOIN
OSLP ON OINV.SlpCode = OSLP.SlpCode
INNER JOIN
OITM ON INV1.ItemCode = OITM.ItemCode
INNER JOIN
OMRC ON OITM.FirmCode = OMRC.FirmCode
INNER JOIN
OCRD ON OINV.CardCode = OCRD.CardCode
WHERE
OSLP.SlpName LIKE '01-2 Ika'
AND OINV.TaxDate BETWEEN '20160804' AND '20160806'
GROUP BY
OSLP.SlpName
感謝を!
私は上記のクエリを試しましたが、そのクエリの結果は正しくありません。スクリーンショットは上記の私の質問にあります。 "間違った結果" –
正確な問題を教えてください... –
非常に非常に遅い応答のためのソーリー。問題は今解決されました。私はちょうどAchiev "sum"(DISTINCT CAST(OINV.DocTotal as float))をAchievとして "合計"(CAST(OINV.DocTotal as float))に "DISTINCT"を追加しました。 –