编写一条sql 其中mobile_tb_tra_ctrip_rrcords为数据表 mobile_tb_tra_apply为出差表 mobile_tb_tra_reconciliation为对账表 数据表中的apply_id = 出差表的id 对账表中的pay包含数据表中的batch_no 条件是数据表中的order_date大于2021-12-31 并且小于2022-08-01 出差表中的statu为32 对账表中的dzsj大于2022-07-31并且对账表中的is_kp=1
时间: 2024-01-21 11:20:10 浏览: 96
Time_Tracker_Starter_Kit.rar_The Handle_keeping tra
以下是符合要求的 SQL 语句:
```sql
SELECT r.pay
FROM mobile_tb_tra_ctrip_rrcords r
JOIN mobile_tb_tra_apply a ON r.apply_id = a.id
JOIN mobile_tb_tra_reconciliation c ON r.batch_no = c.pay
WHERE a.status = 32
AND r.order_date > '2021-12-31' AND r.order_date < '2022-08-01'
AND c.dzsj > '2022-07-31' AND c.is_kp = 1;
```
解释一下上面的 SQL 语句:
首先,我们要从三个数据表中获取数据,因此需要使用 `JOIN` 关键字将它们连接起来。连接条件是 `mobile_tb_tra_ctrip_rrcords` 表中的 `apply_id` 字段与 `mobile_tb_tra_apply` 表中的 `id` 字段相等,以及 `mobile_tb_tra_ctrip_rrcords` 表中的 `batch_no` 字段与 `mobile_tb_tra_reconciliation` 表中的 `pay` 字段相等。
然后,我们需要筛选出符合一系列条件的记录。这些条件包括:
- `mobile_tb_tra_apply` 表中的 `status` 字段等于 32。
- `mobile_tb_tra_ctrip_rrcords` 表中的 `order_date` 字段大于 '2021-12-31',并且小于 '2022-08-01'。
- `mobile_tb_tra_reconciliation` 表中的 `dzsj` 字段大于 '2022-07-31',并且 `is_kp` 字段等于 1。
最后,我们只需要从 `mobile_tb_tra_ctrip_rrcords` 表中选取符合条件的记录的 `pay` 字段即可。
阅读全文