sql - Microsoft Access 向现有联合选择添加额外的列
问题描述
[在此处输入图片描述][1]我需要在查询中添加 4 列(商品名称、FullPrice_2018(price)、FullPrice_2019(price)、(FullPrice_2019-FullPrice_2018))。我不知道如何在不合并行的情况下向联合中添加另一列。现在我的桌子上有 2018 年和 2019 年的物品,但我还需要 3 列。
https://i.stack.imgur.com/lTmqB.png
SELECT FullPrice_2018.[Item name]
FROM FullPrice_2018
UNION
SELECT FullPrice_2019.[Item name]
FROM FullPrice_2019
ORDER BY [Item name]
Result should be like this
"Item name" price2018 price2019 "price2019-price2018"
https://i.stack.imgur.com/XxKU5.png
解决方案
你只是想要JOIN
:
SELECT F2018.[Item name], F2018.FullPrice, F2019.FullPrice,
(F2019.FullPrice - F2018.FullPrice)
FROM FullPrice_2018 as F2018 INNER JOIN
FullPrice_2019 as F2019
ON F2018.[Item name] = F2019.[Item name]
ORDER BY F2018.[Item name];
不幸的是,MS Access 不支持FULL JOIN
. 但我认为你可以这样做:
SELECT [Item name], MAX(FullPrice_2018), MAX(FullPrice_2019),
(MAX(FullPrice_2019) - MAX(FullPrice_2018))
FROM (SELECT F2018.[Item name], F2018.FullPrice as FullPrice_2018, NULL as FullPrice_2010
FROM FullPrice_2018 as F2018
UNION ALL
SELECT F2019.[Item name], NULL, F2019.FullPrice as FullPrice_2019
FROM FullPrice_2019 as F2019
) F
GROUP BY [Item name]
ORDER BY [Item name];
并非所有版本的 MS Access 都支持UNION ALL
该FROM
子句,因此您可能需要对查询的该部分使用视图。
推荐阅读
- git - SSH GitLab pull 总是要求输入密码
- android - Cordova Android 版本构建 Ajax 无法正常工作
- html - Lottie 特定循环帧
- angular - 类型'可观察的
' 不可分配给类型 'never' - python - 将搜索路径添加到 VS Code 工作区
- android - Kotlin 伴随对象 - 初始化块 - 类型别名
- python - 尝试/排除“缓存”请求
- javascript - 为什么我的客户端代码在节点后端编译和运行?
- vb.net - ufl dll 文件未在水晶报表设计器中显示,它采用双精度、字符串、整数类型的 dll,但位图、图像、对象不采用它
- git - Git CA 失败但证书有效(gitea)