我现在有四个表。访问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