我需要在 ms 訪問中構建一個交叉表查詢,但我需要顯示詳細資訊而不是匯總資訊。
我有一張像這樣的桌子:
Date Teamname Teammemebername
交叉表應具有:
- 日期作為行標題
- 團隊名稱作為列標題
- 總結部分中的團隊成員姓名
如何才能做到這一點?
ID ScheduleDate TeamCode TeamMemberCode
5585 3/4/2022 NT NW
5586 3/4/2022 USHRL RN
5587 3/4/2022 USHRT KN
5588 3/4/2022 USHRT KI
5589 3/4/2022 USHRT RF
5590 3/11/2022 NT MF
5591 3/11/2022 USHRL QD
5592 3/11/2022 USHRT NW
5593 3/11/2022 USHRT KN
5594 3/11/2022 USHRT KI
uj5u.com熱心網友回復:
第一個答案不正確: TRANSFORM First(tblTeamdata.Teammemebername) AS FirstMembername SELECT tblTeamdata.DAT FROM tblTeamdata GROUP BY tblTeamdata.DAT PIVOT tblTeamdata.Teamname;
由于交叉表中的每個單元格都可以有多個 MemberCode,因此您必須使用一個函式來回傳這些名稱的串列。該函式應具有日期和團隊代碼作為引數。
Function names(dat As Variant, team As Variant)
Dim res$, sql$
Dim rs As DAO.Recordset
If IsNull(dat) Or IsNull(team) Then
names = Null
Else
sql = "SELECT * FROM Teamdata"
sql = sql & " Where ScheduleDate =#" & dat & "#"
sql = sql & " AND TeamCode=""" & team & """"
sql = sql & " Order by TeamMemberCode;"
Set rs = CurrentDb.OpenRecordset(sql)
Do Until rs.EOF
If res <> "" Then res = res & ","
res = res & rs!TeamMemberCode
rs.MoveNext
Loop
rs.Close
names = res
End If
End Function
TRANSFORM names([ScheduleDate],[Teamcode]) 作為結果 SELECT TeamData.ScheduleDate FROM TeamData GROUP BY TeamData.ScheduleDate PIVOT TeamData.TeamCode;
使用上述資料集查詢的結果將是:
ScheduleDate NT USHRL USHRT
2022-03-04 NW RN KI,KN,RF
2022-03-11 MF QD KI,KN,NW
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/443339.html
標籤:sql 毫秒访问 交叉表 ms-access-2016