皆さん、ありがとうございます。私は、以下に示すようにDocumentNo
、Whscode
と各文書のNetAmmount
を取得するクエリを書かれている:
SQLサーバーの合計の合計
SELECT t1.whscode,
CASE WHEN t0.[DiscPrcnt]>0 then ((sum(t1.LineTotal) -isnull(t0.dpmamnt,0))- ((sum(t1.LineTotal)-isnull(t0.dpmamnt,0)) * t0.[DiscPrcnt]/100)) +t0.VatSum
ELSE ((sum(t1.LineTotal)-isnull(t0.dpmamnt,0))) END
as 'NetAmount',t0.docnum
from [dbo].[OINV] T0 (NOLOCK) INNER JOIN [dbo].[INV1] T1 (NOLOCK) ON T0. [DocEntry] = T1.[DocEntry]
where t0.docdate between '02-09-17' and '02-10-17' and
t1.WhsCode='kidst'and t0.CANCELED!='Y' and t1.targettype!=13
group by T0.[CardName],t0.[taxdate],t0.[docduedate], T0.[DocStatus], t0.[doctotal]-t0.[vatsum],
t1.whscode,t0.DocNum,t0.usersign,t0.DiscPrcnt,t0.dpmamnt,t0.vatsum
having (sum(t1.LineTotal)-isnull(t0.dpmamnt,0))>0
出力:
|whscode| NetAmount | docnum|
|KIDST | 2147.419293 |3411592|
|KIDST | 19.000011 |3411670|
|KIDST | 23.380000 |3411314|
|KIDST | 50.000000 |3412061|
|KIDST | 268.720000 |3412000|
|KIDST | 69.930000 |3412289|
を今私はWhscode
として出力を取得したいと思いNetAmount
のようなもの:
|Whscode| NetAmount |
KIDST----2578.449
sum
(大文字と小文字を区別)のエラーを投げる場合集約またはサブクエリを含む式で集計関数を実行することはできません。
どうかお手伝いしますか?
私はその同じエラーを示すも削除した場合(での選択とグループの両方から)あなたのクエリから –
をフィールド「DOCNUM」を削除します。SELECT t1.whscode、 sum(ケース合計t0。[DiscPrcnt]> 0)(sum(t1.LineTotal)-isnull(t0.dpmamnt、0)) - ((合計(t1.LineTotal)-isnull(t0 .dpmamnt、0))* t0。[DiscPrcnt]/100))+ t0.VatSum ELSE((sum(t1.LineTotal)-isnull(t0.dpmamnt、0))))END) として 'NetAmount' [DocEntry] = [DocEntry] ここで、t0.docdateは'02 -09-17 'となります([dbo]。[OINV] T0(NOLOCK)INNER JOIN [dbo]。 '02 -10-17 'と t1.WhsCode =' kidst ' とt0.CANCELED!=' Y 'とt1.targettype!= 13 グループ t1.whscode –