我現在有四個表。訪問Sql關於pivot
- StuInfo
- ActInfo
- ActAttendance
- ActLateArriveAndEarlyLeave
對於類型,1 =遲到,2 =早退
是否possi可以通過一個sql語句生成這樣的查詢嗎?
C3:E4是存儲的總時間的人在活動invloved細胞。
或者如果不可能,我想將最終結果導出到Excel文件。 我該如何在VBA中做到這一點?
非常感謝。如果我沒有足夠清楚地解釋,請讓我知道。
我現在有四個表。訪問Sql關於pivot
對於類型,1 =遲到,2 =早退
是否possi可以通過一個sql語句生成這樣的查詢嗎?
C3:E4是存儲的總時間的人在活動invloved細胞。
或者如果不可能,我想將最終結果導出到Excel文件。 我該如何在VBA中做到這一點?
非常感謝。如果我沒有足夠清楚地解釋,請讓我知道。
樞軸表是你需要的不幸的是我無法找到一種方式從Access中導出一個平面查詢。它只會將它作爲Excel中的數據透視表導出。此查詢將爲您提供正確的數據。然後,你必須從它
SELECT DISTINCT
StuInfo.StuName AS Name,
StuInfo.Stu_No,
DateDiff("h",IIf([AcctLateAriveAndEarlyLeave].[Type]=1,[AcctLateAriveAndEarlyLeave].[Time],[AcctInfo].[sTime]),IIf([AcctLateAriveAndEarlyLeave].[Type]=2,[AcctLateAriveAndEarlyLeave].[Time],[AcctInfo].[eTime])) AS AttendedFor, Format([AcctInfo].[sTime],"mm/dd/yyyy") AS OnDate
FROM ((StuInfo LEFT JOIN AcctAttendance ON StuInfo.Stu_No = AcctAttendance.Stu_No) LEFT JOIN AcctInfo ON AcctAttendance.[Act_S/N] = AcctInfo.[S/N]) LEFT JOIN AcctLateAriveAndEarlyLeave ON StuInfo.Stu_No = AcctLateAriveAndEarlyLeave.Stu_No;
創建一個支點,那麼你可以創建一個數據透視表,如果你想比顯性小時以外的東西,看起來像這樣
很明顯,你必須改變查詢一下。
交叉表查詢可以工作。但是,我需要一些關於日期字段下的值計算的更多信息。在我的例子中,我假設他們是最大(類型)
TRANSFORM Max(Type) AS MaxOfType
SELECT StuInfo.SteName, StuInfo.Stu_No FROM StuInfo
INNER JOIN ActLateArriveAndEarlyLeave ON StuInfo.Stu_No = ActLateArriveAndEarlyLeave.Stu_No
GROUP BY StuInfo.Ste_No, StuInfo.SteName
PIVOT Format(ActLateArriveAndEarlyLeave.TimeValue, 'short date');
對不起,我不能直接上傳照片。 – pk028382