我有一張表格,將按以下方式填寫:
| ID | 型號 | 物業編號 | 伏 | 問 | 噸 | 型別 |
|---|---|---|---|---|---|---|
| 1 | 批號 | 空值 | 1243582 | 空值 | 2021-10-08 00:00:00.000 | 空值 |
| 2 | GoodStrips | 空值 | 39288 | 空值 | 2021-10-08 00:00:00.000 | 空值 |
| 3 | StripProc | 空值 | 492 | 空值 | 2021-10-08 00:00:00.000 | 空值 |
| 4 | StripRaw | 空值 | 883 | 空值 | 2021-10-08 00:00:00.000 | 空值 |
| 5 | 標簽程式 | 空值 | 414 | 空值 | 2021-10-08 00:00:00.000 | 空值 |
| 6 | 原始標簽 | 空值 | 54 | 空值 | 2021-10-08 00:00:00.000 | 空值 |
| 7 | 小貼士 | 空值 | 101 | 空值 | 2021-10-08 00:00:00.000 | 空值 |
| 8 | 長提示 | 空值 | 65 | 空值 | 2021-10-08 00:00:00.000 | 空值 |
對于每個 8 行的塊,時間戳將是相同的。
理想情況下,我想從這個初始表中創建另一個表或視圖,其中我的批號或時間戳將用作 ID 列,所有其他值將放置在同一行中,如下所示:
| 批號 | GoodStrips | StripProc | StripRaw | 標簽程式 | 原始標簽 | 小貼士 | 長提示 | 噸 |
|---|---|---|---|---|---|---|---|---|
| 1243582 | 39288 | 492 | 883 | 414 | 54 | 101 | 65 | 2021-10-08 00:00:00.000 |
我一直試圖讓內部連接作業無濟于事。
我嘗試將前幾個作為測驗:
Select m1.T, m1.MODELID, m2.V, m3.V
from Rejects945 m1
inner join Rejects945 m2 on m2.T = m1.T
inner join Rejects945 m3 on m3.T = m1.T
where m2.V = 'GoodStrips'
where m3.V = 'StripProc'
where MODELID = 'LotNumber'
我收到以下錯誤:
訊息 156,級別 15,狀態 1,第 6 行
關鍵字“where”附近的語法不正確
任何幫助是極大的贊賞。
uj5u.com熱心網友回復:
您可以使用 PIVOT 功能執行此操作。
樞軸和非樞軸
請參閱下面的示例代碼:
CREATE TABLE #Test
(
ID INT
,MODELID VARCHAR(100)
,V INT
,T DATETIME
)
INSERT #Test (ID, MODELID, V, T)
VALUES (1,'LotNumber',1243582,'8/10/2021 12:00:00 AM')
,(2,'GoodStrips',39288,'8/10/2021 12:00:00 AM')
,(3,'StripProc',492,'8/10/2021 12:00:00 AM')
,(4,'StripRaw',883,'8/10/2021 12:00:00 AM')
,(5,'LabelProc',414,'8/10/2021 12:00:00 AM')
,(6,'LabelRaw',54,'8/10/2021 12:00:00 AM')
,(7,'SmallTips',101,'8/10/2021 12:00:00 AM')
,(8,'LongTips',65,'8/10/2021 12:00:00 AM')
,(9,'LotNumber',2345234,'9/10/2021 12:00:00 AM')
,(10,'GoodStrips',4543,'9/10/2021 12:00:00 AM')
,(11,'StripProc',455,'9/10/2021 12:00:00 AM')
,(12,'StripRaw',43,'9/10/2021 12:00:00 AM')
,(13,'LabelProc',24,'9/10/2021 12:00:00 AM')
,(14,'LabelRaw',5,'9/10/2021 12:00:00 AM')
,(15,'SmallTips',2,'9/10/2021 12:00:00 AM')
,(16,'LongTips',666,'9/10/2021 12:00:00 AM')
select LotNumber
,GoodStrips
,StripProc
,StripRaw
,LabelProc
,LabelRaw
,SmallTips
,LongTips
,t
from
(
select v, MODELID, t
from #Test
) d
pivot
(
max(v)
for MODELID in (LotNumber
,GoodStrips
,StripProc
,StripRaw
,LabelProc
,LabelRaw
,SmallTips
,LongTips
)
) piv;
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/349848.html
標籤:sql sql-server 查询语句
下一篇:查找最后兩行的日差
