台灣最大程式設計社群網站
線上人數
858
 
會員總數:245228
討論主題:189098
歡迎您免費加入會員
討論區列表 >> MS SQL >> 同一天不同欄位資料合併
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
同一天不同欄位資料合併
價值 : 50 QP  點閱數:158 回應數:1

樓主

chu
門外漢
0 1
4 0
發送站內信

資料來源是依據不同代號有不同的計算時間,每一筆都是只有一種代號
ex:
Z(代號) TIME
5 99
4 60
所以我用代號做判斷,ex: ( case Z when '5' then RSN_TIME else 0 end )as A_TIME
( case Z when '4' then RSN_TIME else 0 end )as B_TIME

撈出來結果會是

DATE_ 姓名 A_TIME B_TIME C_TIME
11-22 Sam 0 60 0
11-22 Sam 99 0 0
11-22 Sam 0 0 58
-------------------------------------
有辦法把這三筆結果合併成下列形式嗎?
DATE_ 姓名 A_TIME B_TIME C_TIME
11-22 Sam 99 60 58

搜尋相關Tags的文章: [ MSSQL ] , [ 合併欄位 ] ,
本篇文章發表於2019-11-22 11:17
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
alter procedure proc_yy
as
create table #k_test(
date nvarchar(50) null,
姓名 nvarchar(50) null,
A_TIME nvarchar(50) null,
B_TIME nvarchar(50) null,
C_TIME nvarchar(50) null)

insert #k_test
select '11-22','Sam','0','60','0'
insert #k_test
select '11-22','Sam','99','0','0'
insert #k_test
select '11-22','Sam','0','0','58'

select * into #temp from #k_test where 1=0

insert #temp(date,姓名) select distinct date,姓名 from #k_test

update t1 set t1.A_TIME=t2.A_TIME from #temp t1 join #k_test t2
on t1.姓名=t2.姓名 and t1.date=t2.date where t2.A_TIME<>'0'

update t1 set t1.B_TIME=t2.B_TIME from #temp t1 join #k_test t2
on t1.姓名=t2.姓名 and t1.date=t2.date where t2.B_TIME<>'0'

update t1 set t1.C_TIME=t2.C_TIME from #temp t1 join #k_test t2
on t1.姓名=t2.姓名 and t1.date=t2.date where t2.C_TIME<>'0'

select * from #temp
本篇文章回覆於2019-11-26 11:56
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.