2015-06-22 99 views
0

我試圖將下面的結果按文章分組顯示。 這可能嗎?
因此,最終我只會有2行。 來自TYPE I & W的數據將被合併。合併結果行

到我的查詢圖像,如下
image http://tikistudio.sg/F002.jpg

查詢如下

SELECT INTSALEID as RECEIPT, 
    STRSALETYPE as TYPE, 
    STRORDERCODE as ARTICLE, 
    max(case when strsaletype='I' then DBLQTYSOLD else null end) as [QTY SOLD], 
    max(case when strsaletype='I' then CURSELLPRICE1 else null end) as [UNIT PRICE], 
    max(case when strsaletype='W' then CUROFFERDISCOUNT else null end) as [DISCOUNT], 
    max(case when strsaletype='I' then CURFOREIGNAMT else null end) as [GROSS AMOUNT] 
FROM DAILYSALES 
WHERE STRTRADECODE='MM01' 
    and DTMTRADEDATE='01-01-2015' and INTSALEID='31086' 
    and STRSALETYPE in ('I','W') 
GROUP BY STRORDERCODE,STRSALETYPE,INTSALEID,DBLQTYSOLD,CURSELLPRICE1, 
    CURFOREIGNAMT,CURDISCOUNT,CUROFFERDISCOUNT 
+1

你能分享一些樣本數據和你試圖得到的結果嗎? – Mureinik

回答

1

你如果您彙總數據刪除在集團一些列通過

SELECT 
    INTSALEID as RECEIPT, 
    STRORDERCODE as ARTICLE, 
    MAX(CASE WHEN strsaletype='I' THEN DBLQTYSOLD ELSE NULL END) as [QTY SOLD], 
    MAX(CASE WHEN strsaletype='I' THEN CURSELLPRICE1 ELSE NULL END) as [UNIT PRICE], 
    MAX(CASE WHEN strsaletype='W' THEN CUROFFERDISCOUNT ELSE NULL END) as [DISCOUNT], 
    MAX(CASE WHEN strsaletype='I' THEN CURFOREIGNAMT ELSE NULL END) as [GROSS AMOUNT] 
FROM DAILYSALES 
WHERE 
STRTRADECODE='MM01' 
and DTMTRADEDATE='01-01-2015' and INTSALEID='31086' 
and STRSALETYPE in ('I','W') 
GROUP BY STRORDERCODE,INTSALEID 
+0

謝謝帕拉尼庫馬爾,這個作品。 – louise

0

再次按收據分組,再按文章分組,以QTY已售出,單價,總額和最低價值爲折扣的最大值。

Select RECEIPT, ARTICLE, MAX([QTY SOLD]) as [QTY SOLD], MAX([UNIT PRICE]) as [UNIT PRICE], MIN([DISCOUNT]) as [DISCOUNT], MAX([GROSS AMOUNT]) as [GROSS AMOUNT] 
From 
(select INTSALEID as RECEIPT, 
STRSALETYPE as TYPE, 
STRORDERCODE as ARTICLE, 
max(case when strsaletype='I' then DBLQTYSOLD else null end) as [QTY SOLD], 
max(case when strsaletype='I' then CURSELLPRICE1 else null end) as [UNIT PRICE], 
max(case when strsaletype='W' then CUROFFERDISCOUNT else null end) as [DISCOUNT], 
max(case when strsaletype='I' then CURFOREIGNAMT else null end) as [GROSS AMOUNT] 
from DAILYSALES 
where STRTRADECODE='MM01' 
and DTMTRADEDATE='01-01-2015' and INTSALEID='31086' 
and STRSALETYPE in ('I','W') 
group by STRORDERCODE,STRSALETYPE,INTSALEID,DBLQTYSOLD,CURSELLPRICE1, 
CURFOREIGNAMT,CURDISCOUNT,CUROFFERDISCOUNT) x 
Group by RECEIPT, ARTICLE