我有2个交叉表查询都可以工作,但我想将它们组合在一起。
第一个显示每个基地使用各种车辆的总时间:
TRANSFORM Sum(Cdbl(Nz(M.dtTripTime, 0))) AS SheetTime
SELECT M.lngVehicleID
,Sum(Cdbl(Nz(M.dtTripTime, 0))) AS Total
FROM tblSheets M
INNER JOIN Bases B ON M.lngBaseID = B.BaseID
GROUP BY M.lngVehicleID
PIVOT B.BaseName IN (
'Alpha'
,'Bravo'
,'Charlie'
);
第二个显示每辆车在不同基地的行程次数:
TRANSFORM Count(M.lngSheetID) AS SheetCount
SELECT M.lngVehicleID
,Sum(Cdbl(Nz(M.dtTripTime, 0))) AS Total
FROM tblSheets M
INNER JOIN Bases B ON M.lngBaseID = B.BaseID
GROUP BY M.lngVehicleID
PIVOT B.BaseName IN (
'Alpha'
,'Bravo'
,'Charlie'
);
我理想的是生成一个交叉表,显示每个车辆在不同基础上的组合时间和行程次数。这可能吗?上面的查询超出了我对SQL的非常有限的能力!
答案 0 :(得分:0)
在Access中,交叉表只允许一个值,一个列变量和几个行变量,但是您可以根据上面的两个进行第三个查询,键入lngVehicleID
,沿着以下行 - 我认为需要VBA解决方案的其他东西,但是没有必要。
我假设您的交叉表分别以crosstab1
和crosstab2
为灵感保存,命名。
[未经测试]
Select * from crosstab1
inner join crosstab2 on crosstab1.lngVehicleID=crosstab1.lngVehicleID
order by crosstab1.lngVehicleID