sql - 如何查找另一个相关行不存在的行
问题描述
我有一张包含发票号码和交易代码的表格。单张发票可以包含交易代码 10 和 11:
+------------------+-----------------+
| Transaction Code | Invoice Number |
+------------------+-----------------+
| 10 | CAN000700798 |
| 20 | CAN000700798 |
+------------------+-----------------+
发票可能只包含交易代码为 10 的记录:
+------------------+-----------------+
| Transaction Code | Invoice Number |
+------------------+-----------------+
| 10 | CAN000700798 |
+------------------+-----------------+
显示两种情况的发票表示例:
+------------------+-----------------+
| Transaction Code | Invoice Number |
+------------------+-----------------+
| 10 | CAN000700798 |
+------------------+-----------------+
| 10 | CAN000900999 |
| 20 | CAN000900999 |
+------------------+-----------------+
| 10 | CAN000700777 |
| 20 | CAN000700777 |
+------------------+-----------------+
这是我对发票表查询的期望;因为发票 CAN000700798 只包含交易代码 10 而不是 10 和 20。
+------------------+-----------------+
| Transaction Code | Invoice Number |
+------------------+-----------------+
| 10 | CAN000700798 |
+------------------+-----------------+
我需要编写一个查询来查看发票并检查它是否包含具有事务代码 10 和 11 的记录。如果发票仅包含事务代码 10,则返回记录。
解决方案
您能否尝试以下查询是否适合您:
SELECT T.TransactionCode, T.InvoiceNumber
FROM InvoiceTable AS T
WHERE T.TransactionCode = 10 AND NOT EXISTS (
SELECT 1
FROM InvoiceTable AS X
WHERE X.InvoiceNumber = T.InvoiceNumber AND X.TransactionCode <> 10
)
推荐阅读
- mysql - mysql - 显示按时间排序的用户列表
- python - ForeignKey 列本身的 SET_DEFAULT
- javascript - 如何在 iframe 之外获取元素
- python - 如何绘制 Light GBM .joblib 模型的树?
- javascript - 我正在尝试从 API 获取一个月的天气数据
- ios - 当 iOS 设备处于后台时,扫描 iPhone 并将其连接到 BLE 传感器
- ios - 如何在 Swift 中将多个数组合并为一个具有数组值的数组?
- ios - 如何从 JSON 中获取特定值并在 CollectionView 上显示它的元素?
- android - 启动应用程序 A 时无法接收 `BOOT_COMPLETED` 意图,但启动应用程序 B 时会收到它
- spring-mvc - spring mvc中不存在必需的CommonMultipartFile参数'testFile'