伊莉討論區

標題: SQL 指令要如何下? [打印本頁]

作者: fsze88    時間: 2019-3-12 03:39 PM     標題: SQL 指令要如何下?

請問下面需求的欄位要如何下SQL

AM01是1月的金額、AM02是2月的金額、AM03是3月的金額、AM04是4月的金額........AM12是12月的金額。

********************************

若a=4 是收入

如果選1月,則金額是加總1月同品名的AM01欄位的值 as 收入總金額
如果選2月,則金額是加總1月~2月同品名的AM01+AM02欄位的值 as 收入總金額
如果選3月,則金額是加總1月~3月同品名的AM01+AM02+AM03欄位的值 as 收入總金額
如果選4月,則金額是加總1月~4月同品名的AM01+AM02+AM03+AM04欄位的值 as 收入總金額
.
.
.
如果選12月,則金額是加總1月~12月同品名的AM01+AM02+AM03+AM04+AM05+AM06+AM07+AM08+AM09+AM10+AM11+AM12欄位的值


若a=5 是支出

如果選1月,則金額是加總1月同品名的AM01欄位的值 as 支出總金額
如果選2月,則金額是加總1月~2月同品名的AM01+AM02欄位的值 as 支出總金額
如果選3月,則金額是加總1月~3月同品名的AM01+AM02+AM03欄位的值 as 支出總金額
如果選4月,則金額是加總1月~4月同品名的AM01+AM02+AM03+AM04欄位的值 as 支出總金額
.
.
.
如果選12月,則金額是加總1月~12月同品名的AM01+AM02+AM03+AM04+AM05+AM06+AM07+AM08+AM09+AM10+AM11+AM12欄位的值



作者: parts0711    時間: 2019-3-20 10:19 AM

本帖最後由 parts0711 於 2019-3-20 10:28 AM 編輯

需求描述得真亂....Orz
猜測是這樣的..

有一個表格,其中有一個欄位是品名,有一個欄位表示是支出或收入
另外有12個欄位,AM01~AM12,用來放置每個月份的金額

這樣的表格設計看起來已經不是交易紀錄,而是一種彙總結果了,在這樣一個表格內容中要再次去作[加總]這樣的需求,而且需求還定死了起始月份為1月這樣吧...

品名 收入/支出 AM01 AM02 AM03 AM04 AM05 AM06 AM07 AM08 AM09 AM10 AM11 AM12

SELECT  品名 ,
        CASE WHEN 月份 = '1月' THEN
                SUM(AM01)
            WHEN 月份 = '2月' THEN
                            SUM(AM01) + SUM(AM02)
                        WHEN 月份 = '3月' THEN
                            SUM(AM01) + SUM(AM02) + SUM(AM03)
            WHEN 月份 = '4月' THEN
                            SUM(AM01) + SUM(AM02) + SUM(AM03) + SUM(AM04)
                        WHEN 月份 = '5月' THEN
                            SUM(AM01) + SUM(AM02) + SUM(AM03) + SUM(AM04) + SUM(AM05)
                        WHEN 月份 = '6月' THEN
                            SUM(AM01) + SUM(AM02) + SUM(AM03) + SUM(AM04) + SUM(AM05) + SUM(AM06)
                        WHEN 月份 = '7月' THEN
                            SUM(AM01) + SUM(AM02) + SUM(AM03) + SUM(AM04) + SUM(AM05) + SUM(AM06) + SUM(AM07)
                        WHEN 月份 = '8月' THEN
                            SUM(AM01) + SUM(AM02) + SUM(AM03) + SUM(AM04) + SUM(AM05) + SUM(AM06) + SUM(AM07) + SUM(AM08)
                        WHEN 月份 = '9月' THEN
                            SUM(AM01) + SUM(AM02) + SUM(AM03) + SUM(AM04) + SUM(AM05) + SUM(AM06) + SUM(AM07) + SUM(AM08) + SUM(AM09)
                        WHEN 月份 = '10月' THEN
                            SUM(AM01) + SUM(AM02) + SUM(AM03) + SUM(AM04) + SUM(AM05) + SUM(AM06) + SUM(AM07) + SUM(AM08) + SUM(AM09) + SUM(AM10)
                        WHEN 月份 = '11月' THEN
                            SUM(AM01) + SUM(AM02) + SUM(AM03) + SUM(AM04) + SUM(AM05) + SUM(AM06) + SUM(AM07) + SUM(AM08) + SUM(AM09) + SUM(AM10) + SUM(AM11)
                        ELSE
                            SUM(AM01) + SUM(AM02) + SUM(AM03) + SUM(AM04) + SUM(AM05) + SUM(AM06) + SUM(AM07) + SUM(AM08) + SUM(AM09) + SUM(AM10) + SUM(AM11) + SUM(AM12)
                        END 收入/支出總金額
FROM 表格名稱
WHERE 收入/支出= @a
GROUP BY 品名





歡迎光臨 伊莉討論區 (http://a401.file-static.com/) Powered by Discuz!