我有一個SQL表「ITM_SLS」具有以下字段:爲不同的日期範圍輸出兩個字段爲1字段?
ITEM
DESCRIPTION
TRANSACTION #
DATE
QTY SOLD
我希望能夠拍出一個月的值輸出數量和年初至今的值,使得輸出應該是這樣的:
ITEM, DESCRIPTION, QTY SOLD MONTH, QTY SOLD YEAR TO DATE
這可能嗎?
我有一個SQL表「ITM_SLS」具有以下字段:爲不同的日期範圍輸出兩個字段爲1字段?
ITEM
DESCRIPTION
TRANSACTION #
DATE
QTY SOLD
我希望能夠拍出一個月的值輸出數量和年初至今的值,使得輸出應該是這樣的:
ITEM, DESCRIPTION, QTY SOLD MONTH, QTY SOLD YEAR TO DATE
這可能嗎?
您可以使用子查詢中的group by
來計算總銷售量。例如
select a.Item, a.Description, b.MonthQty, c.YearQty
from (
select distinct Item, Description from TheTable
) a
left join (
select Item, sum(Qty) as MonthQty
from TheTable
where datediff(m,Date,getdate()) <= 1
group by Item
) b on a.Item = b.Item
left join (
select Item, sum(Qty) as YearQty
from TheTable
where datediff(y,Date,getdate()) <= 1
group by Item
) c on a.Item = c.Item
限制子查詢一個特定的時間範圍的方法,每DBMS不同,該示例中使用SQL Server datediff
功能。
謝謝!我要去試試它... – user256909 2010-01-22 17:07:14
再次感謝!我得到它的工作使用您的代碼模板,除了我使用 日期'date1'和'date2' 而不是datediff(這不適合我) 所以我只需要輸入我自己的日期值... – user256909 2010-01-22 23:45:24
這會給你的你可以做什麼的想法:
select
ITEM,
DESCRIPTION,
QTY SOLD as MONTH,
(select sum(QTY SOLD)
from ITM_SLS
where ITEM = I.ITEM
AND YEAR = i.YEAR
) as YEAR TO DATE
from ITM_SLS I
假設 「一個月」 是上個月...
select item
, description
, sum (case when trunc(transaction_date, 'MM')
= trunc(add_months(sysdate, -1), 'MM')
then qty_sold
else 0
end) as sold_month
, sum(qty_sold) as sold_ytd
from itm_sls
where transaction_date >= trunc(sysdate, 'yyyy')
group by item, description
/
依賴。你使用的是哪個數據庫? – womp 2010-01-22 16:53:28
我使用SQL數據庫是否合理? – user256909 2010-01-22 16:57:02
這絕對是Microsoft SQL Server。 – user256909 2010-01-22 17:01:15