第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

SQL轉(zhuǎn)置全表

SQL轉(zhuǎn)置全表

達(dá)令說 2019-08-08 16:45:49
SQL轉(zhuǎn)置全表我需要在MS SQL中進(jìn)行以下轉(zhuǎn)置從:Day  A  B ---------Mon  1  2Tue  3  4Wed  5  6Thu  7  8Fri  9  0以下內(nèi)容:Value Mon Tue Wed Thu Fri --------------------------A      1   3   5   7   9B      2   4   6   8   0我知道PIVOT當(dāng)只有一列(A)時(shí)怎么做,但是當(dāng)有多列要轉(zhuǎn)置時(shí)我無法弄清楚怎么做(A,B,...)要轉(zhuǎn)置的示例代碼:select LEFT(datename(dw,datetime),3) as DateWeek,   sum(ACalls) as A,   Sum(BCalls) as B from DataTablegroup by LEFT(datename(dw,datetime),3)表結(jié)構(gòu):Column DataTypeDateTime DatetimeACalls intBCalls int任何幫助都感激不盡。
查看完整描述

1 回答

?
慕哥9229398

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超6個(gè)贊

為了將數(shù)據(jù)轉(zhuǎn)換為您想要的結(jié)果,您需要同時(shí)使用UNPIVOTPIVOT函數(shù)。

UNPIVOT函數(shù)接受AB列并將結(jié)果轉(zhuǎn)換為行。然后,您將使用該PIVOT函數(shù)將day值轉(zhuǎn)換為列:

select *from(
  select day, col, value  from yourtable  unpivot
  (
    value    for col in (A, B)
  ) unpiv) srcpivot(
  max(value)
  for day in (Mon, Tue, Wed, Thu, Fri)) piv

請(qǐng)參閱SQL Fiddle with Demo

如果您使用的是SQL Server 2008+,則可以使用CROSS APPLYwith VALUES來取消數(shù)據(jù)的移動(dòng)。您的代碼將更改為以下內(nèi)容:

select *from(
  select day, col, value  from yourtable  cross apply
  (
    values ('A', A),('B', B)
  ) c (col, value)) srcpivot(
  max(value)
  for day in (Mon, Tue, Wed, Thu, Fri)) piv

請(qǐng)參閱SQL Fiddle with Demo。

編輯#1,將您當(dāng)前的查詢應(yīng)用到上述解決方案中,您將使用類似于此的內(nèi)容:

select *from(
  select LEFT(datename(dw,datetime),3) as DateWeek,
    col, 
    value  from DataTable 
  cross apply 
  (
    values ('A', ACalls), ('B', BCalls)
  ) c (col, value)) srcpivot(
  sum(value)
  for dateweek in (Mon, Tue, Wed, Thu, Fri)) piv


查看完整回答
反對(duì) 回復(fù) 2019-08-08
  • 1 回答
  • 0 關(guān)注
  • 1063 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)