圖一資料表中,我想查詢1號到3號,張三的收入明細。效果如圖二
請問要怎么寫sql陳述句?

uj5u.com熱心網友回復:
--測驗資料
if not object_id(N'Tempdb..#T') is null
drop table #T
Go
Create table #T([姓名] nvarchar(22),[日期] Date,[收入] int)
Insert #T
select N'張三','2019-1-1',500 union all
select N'張三','2019-1-2',400 union all
select N'張三','2019-1-3',300 union all
select N'張三','2019-1-4',500 union all
select N'張三','2019-1-5',500 union all
select N'張三','2019-1-6',600
Go
--測驗資料結束
DECLARE @sql VARCHAR(MAX)
SET @sql = 'select [姓名]'
SELECT @sql = @sql + ',sum(case [日期] when ''' + RTRIM(日期)
+ ''' then [收入] else 0 end)[' + RTRIM(日期) + ']'
FROM ( SELECT DISTINCT
日期
FROM #T WHERE 日期 BETWEEN '2019-1-1' AND '2019-1-3'
) a
SET @sql = @sql
+ ',sum([收入]) 小計 from #T WHERE 日期 BETWEEN ''2019-1-1'' AND ''2019-1-3'' group by [姓名]'
EXEC(@sql)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/123665.html
標籤:基礎類
上一篇:行轉列
下一篇:求解答:sql server2014找不到或無法加載已注冊的 .Net Framework Data Provider。 (System.Data)
