原資料表里面的資料如下:
NO Date Time City Name
A10 2020/8/1 8:19:26 上海 張三
A10 2020/8/1 8:06:06 上海 張三
A10 2020/8/1 17:06:06 上海 張三
A20 2020/8/1 7:52:46 上海 李四
A20 2020/8/1 17:12:43 上海 李四
A10 2020/8/2 10:19:26 上海 張三
A10 2020/8/2 10:06:06 上海 張三
A10 2020/8/2 17:26:06 上海 張三
A20 2020/8/2 7:56:46 上海 李四
A20 2020/8/2 17:16:43 上海 李四
A10 2020/8/3 8:19:26 上海 張三
A10 2020/8/3 8:06:06 上海 張三
A20 2020/8/3 7:50:46 上海 李四
A20 2020/8/3 18:10:43 上海 李四
A20 2020/8/3 17:09:43 上海 李四
能不能寫個SQL查詢陳述句,查詢出如下格式:

uj5u.com熱心網友回復:
create table #t(NO varchar(10),[Date Time] datetime,City varchar(10),Name varchar(10))
insert into #t
select 'A10','2020/8/1 8:19:26','上海','張三' union all
select 'A10','2020/8/1 8:06:06','上海','張三' union all
select 'A10','2020/8/1 17:06:06','上海','張三' union all
select 'A20','2020/8/1 7:52:46','上海','李四' union all
select 'A20','2020/8/1 17:12:43','上海','李四' union all
select 'A10','2020/8/2 10:19:26','上海','張三' union all
select 'A10','2020/8/2 10:06:06','上海','張三' union all
select 'A10','2020/8/2 17:26:06','上海','張三' union all
select 'A20','2020/8/2 7:56:46','上海','李四' union all
select 'A20','2020/8/2 17:16:43','上海','李四' union all
select 'A10','2020/8/3 8:19:26','上海','張三' union all
select 'A10','2020/8/3 8:06:06','上海','張三' union all
select 'A20','2020/8/3 7:50:46','上海','李四' union all
select 'A20','2020/8/3 18:10:43','上海','李四' union all
select 'A20','2020/8/3 17:09:43','上海','李四'
declare @tsql nvarchar(max)
select @tsql=isnull(@tsql+N',',N'')+N'['+dt+N']'
from (select distinct dt=convert(nvarchar,[Date Time],111) from #t) t
select @tsql=N'select NO,City,Name,'+@tsql
+N' from (select a.NO,a.City,a.Name,dt=convert(varchar,a.[Date Time],111),
ss=stuff((select char(10)+convert(varchar,b.[Date Time],108)
from #t b
where b.No=a.NO
and b.City=a.City
and b.Name=a.Name
and convert(varchar,b.[Date Time],111)=convert(varchar,a.[Date Time],111)
for xml path('''')),1,1,'''')
from #t a
group by a.NO,a.City,a.Name,convert(varchar,a.[Date Time],111)) t
pivot(max(ss) for dt in('+@tsql+N')) p '
exec(@tsql)
uj5u.com熱心網友回復:
老大,Date 和 Time 是兩個欄位 date 型別和 time(7),一個存盤日期的,另一個是存盤時間的。如果增加Where條件放在哪里呀。比如 where name='張三'
uj5u.com熱心網友回復:
要做報表推薦你使用finereportuj5u.com熱心網友回復:
說實話,你這個需求用tableau或者Excel數字透視表,分分鐘就做好了。用SQL有點麻煩,不推薦轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/8381.html
標籤:疑難問題
上一篇:sql當欄位1 為劉時 調取同樣欄位是劉的title
下一篇:Java 新人求大佬求助
