您不需要在Access中爲此創建查詢。 Word有一個名爲<<Next Record>>
的合併字段,強制移動到下一條記錄。如果您看看如何使用郵件合併嚮導創建標籤文檔,您將看到它是如何完成的。
更新 - 在SQL
列在簡單SELECT
語句從柱從基礎表/查詢(或從表達式)推導這樣做。如果您想根據數據定義列,則需要使用交叉表查詢。
首先創建一個運行計數查詢每個人(說你的表稱爲People
),並從運行計數計算行和列的位置:
SELECT People.id, Count(*)-1 AS RunningCount, int(RunningCount/4) AS RowNumber, RunningCount Mod 4 AS ColumnNumber
FROM People
LEFT JOIN People AS People_1 ON People.id >= People_1.id
GROUP BY People.id;
(您將無法在查詢設計器中查看這一點,因爲JOIN
不與=
但>=
比較)
此查詢返回的結果如下:
id Rank RowNumber ColumnNumber
1 0 0 0
2 1 0 1
3 2 0 2
4 3 0 3
5 4 1 0
6 5 1 1
假設此查詢保存爲Positions
,下面的查詢將返回結果:
TRANSFORM First(Item) AS FirstOfItem
SELECT RowNumber
FROM (
SELECT ID AS Item, RowNumber, "id" &(ColumnNumber + 1) AS ColumnHeading
FROM Positions
UNION ALL SELECT Name, RowNumber, "name" & (ColumnNumber +1)
FROM Positions
INNER JOIN People ON Positions.id = People.id
) AS AllValues
GROUP BY AllValues.RowNumber
PIVOT AllValues.ColumnHeading In ("id1","name1","id2","name2","id3","name3","id4","name4");
的UNION
有這麼在People
表中每條記錄將有兩列 - 一個與id
,和一個用name
。
的PIVOT
條款強制列到指定的順序,而不是按字母順序(如id1
,id2
...... name1
,name2
...)
我不能找出如何格式化,請幫助:( – Ali
)在編輯區域右側的橙色框上按下白色問號,以便格式化指令。 –