2017-08-17 76 views
0

我有一個包含三個字段的表:ticketNumber,attendee和tableNumber。用於MS-Access數據透視的SQL查詢

例如

ticketNumber | attendee | tableNumber 
------------ | -------- | ----------- 
    A1  | alex  |  3 
    A2  | bret  |  2 
    A3  | chip  |  1 
    A4  | dale  |  2 
    A5  | eric  |  2 
    A6  | finn  |  3

我想生成一個表,每個tableNumber作爲一個字段和坐在該tableNumber的名稱列表。

 
    1 | 2 | 3 
-----|------|----- 
chip | bret | alex 
    | dale | finn 
    | eric | 

我一直在努力的查詢是:

transform attendee 
select attendee 
from registration 
group by tableNumber, name 
pivot tableNumber

這給了我:

 
attendee | 1 | 2 | 3 
---------|------|------|----- 
chip  | chip |  | 
bret  |  | bret | 
dale  |  | dale | 
eric  |  | eric | 
alex  |  |  | alex 
finn  |  |  | finn 

我知道如何讓我需要使用PivotTableView表但我喜歡知道如何用查詢來完成它,以便我可以在我正在處理的代碼中使用它。我不確定如何編寫這個查詢,而不必選擇一個字段(在我的情況下,選擇與會者)。也有可能生成沒有空單元的表格嗎?

謝謝:)

+0

[在MS Access樞軸數據]的可能的複製(https://stackoverflow.com/questions/16546305/pivoting-data-in-ms-access) – JRG

回答

0

表需要一個唯一的標識符字段,將正確地分類,我不認爲ticketNumber可以依靠了點。自動編號應該有效。然後嘗試:

TRANSFORM First(Table1.attendee) AS FirstOfattendee SELECT DCount("*","Table1","tableNumber=" & [tableNumber] & " AND ID<" & [ID])+1 AS RowSeq FROM Table1 GROUP BY DCount("*","Table1","tableNumber=" & [tableNumber] & " AND ID<" & [ID])+1 PIVOT Table1.tableNumber;