sql - 查询 SQL 时结果为空
问题描述
我想要一份报告,其中包含在特定时期没有销售的品牌。这是我到目前为止所尝试的,但我得到一个空列Brand_Name
。
SELECT DISTINCT
Brands$.BRAND_NAME
FROM
Brands$
INNER JOIN
Products$ ON Brands$.BRAND_ID = Products$.BRAND_ID
LEFT JOIN
InvDetails$ ON Products$.PRODUCT_ID = InvDetails$.PRODUCT_ID
INNER JOIN
Invoices$ ON Invoices$.INVOICE_ID = InvDetails$.INVOICE_ID
WHERE
InvDetails$.PRODUCT_ID IS NULL
AND (Invoices$.INVOICE_DATE BETWEEN '2013-10-22 23:41:49.143'
AND '2013-11-22 17:54:03.437')
解决方案
我正在使用 NOT EXISTS 排除在给定期间有发票的任何品牌
SELECT DISTINCT b.BRAND_NAME
FROM Brands$ b
INNER JOIN Products$ p ON b.BRAND_ID=p.BRAND_ID
WHERE NOT EXISTS(SELECT 1
FROM Invoices$ i
JOIN InvDetails$ id ON i.INVOICE_ID = id.INVOICE_ID
WHERE i.INVOICE_DATE BETWEEN '2013-10-22 23:41:49.143' AND '2013-11-22 17:54:03.437'
AND id.PRODUCT_ID = p.PRODUCT_ID)
推荐阅读
- c# - 为什么我们需要命令?何时使用它们,何时不使用?
- javascript - 如何一起使用 Array 和 IndexOf?
- java - 休息 WS 部分 JSON 响应
- django - 带有client_id和client_Secret的django oauth2身份验证hardcded
- javascript - HTTP请求后如何调用回调方法
- linux - 如何使用 cut linux bash 剪切最后一个字段?
- jenkins - 声明式管道共享库
- android - 如何正确管理改造 POST 请求?
- ios - 如何在 iOS 中使用 NSMutableDictionary 添加图像并使用 POST 方法将 NSMutableDictionary 发送到服务器
- python - OpenCV 没有 drawKeypoints 函数