sql - VBA SQL 右连接 - 连接操作中的语法错误
问题描述
我正在尝试在 Excel VBA 中正确加入子查询,但我不断收到语法错误。谁能发现它?
SELECT c.Category
FROM [Catalogue Info] as c
RIGHT JOIN (
SELECT [Product Code]
FROM Orders
WHERE JSID = 10503001
AND [Delivery Date] >= 04/12/2017
GROUP BY [Product Code]
) AS o ON c.code = o.[Product Code]
WHERE c.Brand='Brand'
AND c.Category<>''
GROUP BY c.Category
ORDER BY Avg(c.Page) Asc;
Excel 2016 视窗 10
- -编辑 - -
这是产生上述查询的 VBA 中的实际代码
sqlProdList = " RIGHT JOIN" _
& " (SELECT [Product Code]" _
& " FROM Orders" _
& " WHERE JSID = " & customerRef _
& " AND [Delivery Date] >= " & Date - 365 _
& " GROUP BY [Product Code]) as o on c.code = o.[Product Code]"
sqlCategory = "SELECT c.Category" _
& " FROM [Catalogue Info] as c" _
& sqlProdList _
& " WHERE c.Brand='Brand'" _
& " AND c.Category<>''" _
& " GROUP BY c.Category" _
& " ORDER BY Avg(c.Page) Asc;"
这是表格的样子:
解决方案
我怀疑你想要的查询更像这样:
SELECT c.Category
FROM [Catalogue Info] as c LEFT JOIN
[Product Code]
o.Orders o
ON c.code = o.[Product Code] AND
o.JSID = 10503001 AND
[Delivery Date] >= '2017-04-12'
WHERE c.Brand = 'Brand' AND c.Category <> ''
GROUP BY c.Category
ORDER BY Avg(c.Page) Asc;
笔记:
- 这使用
LEFT JOIN
. - 它修复了日期格式。
- 它删除子查询。
推荐阅读
- java - 基于当前值的加权随机性(不知道如何解释)
- shell - 使用 sed 将文本替换为特殊字符
- javascript - 根据范围数组动态过滤对象数组
- bulma - 从 Bulma SASS 中删除未使用的颜色
- sql - 如何从电话号码中删除空格(SQL)
- embedded - STM32 既做主又做从
- django - django rest框架中的文件路径不一致
- redhat - 为什么 Redhat Openstack Platform 需要在 Director 机器上安装 Openstack?
- javascript - Handling methods/return from function without running the function every time?
- python - 利用 lambda 函数优化矩阵数学 - Pandas