首先,感谢所有可以提供帮助的人。多年来我已经做了很多连接查询,但有些人无法让这个工作。不过,这是我第一次同时使用“变换/枢轴”命令。
查询1:
TRANSFORM Max(price_btc)
SELECT year1, month1, day1, hour1, minute1
FROM HISTORY
WHERE [SYMBOL] = "XRP" OR [SYMBOL] = "EOS" OR [SYMBOL] = "NEO"
GROUP BY year1, month1, day1, hour1, minute1
PIVOT symbol;
查询2:
SELECT year1, month1, day1, hour1, minute1, price_usd
FROM HISTORY
WHERE [symbol] = "BTC"
ORDER BY year1, month1, day1, hour1, minute1;
Query1 和 Query 都可以正常工作。 我想可以在year1、month1、day1、hour1、min1上左连接这两个查询 因此我创建了第三个查询:
查询3:
SELECT *
FROM
(
SELECT year1, month1, day1, hour1, minute1, price_usd
FROM HISTORY
WHERE [symbol] = "BTC"
ORDER BY year1, month1, day1, hour1, minute1
) AS A
LEFT JOIN
(
TRANSFORM MAX(price_btc)
SELECT year1, month1, day1, hour1, minute1
FROM HISTORY
WHERE [SYMBOL] = "XRP" OR [SYMBOL] = "EOS" OR [SYMBOL] = "NEO"
GROUP BY year1, month1, day1, hour1, minute1
PIVOT symbol
) AS B
ON A.year1 = B.year1 AND A.month1 = B.month1 AND A.day1 = B.day1 AND A.hour1 = B.hour1 AND A.minute1 = B.minute1;
但是这会生成一个错误,指出“FROM 子句中的语法错误”
我想上传单个查询结果的 Excel 文件,但似乎无法这样做。
有人可以帮忙吗?非常感谢您的帮助。
最佳答案
Access 不允许在子查询中使用 Transform
+ Pivot
。要解决该限制,您需要将交叉表查询存储在单独的查询中,例如:
查询3:
TRANSFORM MAX(price_btc)
SELECT year1, month1, day1, hour1, minute1
FROM HISTORY
WHERE [SYMBOL] = "XRP" OR [SYMBOL] = "EOS" OR [SYMBOL] = "NEO"
GROUP BY year1, month1, day1, hour1, minute1
PIVOT symbol
查询4:
SELECT *
FROM
(
SELECT year1, month1, day1, hour1, minute1, price_usd
FROM HISTORY
WHERE [symbol] = "BTC"
ORDER BY year1, month1, day1, hour1, minute1
) AS A
LEFT JOIN
Query3 AS B
ON A.year1 = B.year1 AND A.month1 = B.month1 AND A.day1 = B.day1 AND A.hour1 = B.hour1 AND A.minute1 = B.minute1;
关于sql - Access 加入 TRANSFORM/PIVOT 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50738611/