我在Access資料庫中有一個表,我想用MS Access中的SQL查詢將AT_cd列轉換為行(如下圖的結果表),但我無法正確轉換。我試著用下面的查詢進行轉換,但是它把AT_cd轉換成了200多列。我不知道如何糾正我的查詢。下面是提供的樣本表和所需的結果表。非常感謝任何幫助。
表:
ID AT_cd
01 BB01A
01 IZ76N
02 AC21B
02 AX30A
02 ZA98A
03 AC21N
03 ZA76M
03 RT67T
04 QS70P
04 TR67A
04 GB45L
04 AC78M
期望的結果:
ID AT_cd1 AT_cd2 AT_cd3 AT_cd4
01 BB01A IZ76N
02 AC21B AX30A ZA98A
03 AC21N ZA76M RT67T
04 QS70P TR67A GB45L AC78M
代碼:
TRANSFORM FIRST(AT_cd)
SELECT [ID] 。
FROM Table1
GROUP BY [ID)
PIVOT AT_cd
uj5u.com熱心網友回復:
對于DCount,你可以使用這個查詢來接近,它也會對列值進行排序:
TRANSFORM
First(QueryQ.AT_cd)
SELECT(QueryQ.AT_cd)
查詢Q.ID
FROM(QueryQ.AT_cd)
(SELECT)
ID。
AT_cd,
"AT_cd" & CStr(DCount("*", "TableQ", "[ID] = '" & ID & "' And [AT_cd] <= '" & AT_cd & " '") AS 序列
FROM[/span
TableQ) As QueryQ
GROUPBY
QueryQ.ID
PIVOT
QueryQ.Sequence。
uj5u.com熱心網友回復:
我擔心你想要的東西是不可能的。你試圖根據記錄串列中的記錄順序來獲得結果,這是不可能的。你需要創建一個特定的欄位來說明順序,然后你就可以這樣做了。說明順序的欄位應該是這樣的:
ID AT_cd Order。
01 BB01A AT_cd1
01 IZ76N AT_cd2
02 AC21B AT_cd1
02 AX30A AT_cd2
02 ZA98A AT_cd3
03 AC21N AT_cd1
03 ZA76M AT_cd2
03 RT67T AT_cd3
04 QS70P AT_cd1
04 TR67A AT_cd2
04 GB45L AT_cd3
04 AC78M AT_cd4
一旦你這樣做了,下面的TRANSFORM就會產生你想要的結果:
TRANSFORM First(AT_cd)
SELECT ID
FROM Table_name
GROUP BY ID
ORDER BY ID
PIVOT Order Order
更多資訊請訪問LightningGuide.net.
。轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/324083.html
標籤:

