gpt4 book ai didi

sql - 对条件应用限制

转载 作者:行者123 更新时间:2023-11-29 13:48:31 25 4
gpt4 key购买 nike

我有一个返回操作的贷方通知单 (CN) 和借方通知单 (DN) 的查询,每个 CN 都带有两个或多个 DN(由字段 payment_plan_id 引用)。在分页时,例如我必须带上 10 个操作,即 10 个 CN 和它们的 DN,但如果我将限制保留为 10,它也会计算我必须在查询中返回的交易的借方通知单。因此,它只会给我带来 2、3 或 4 个操作,具体取决于贷方通知单附带的 DN 的数量。

SELECT
value, installment, payment_plan_id, model,
creation_date, operation
FROM payment_plant
WHERE model != 'IMMEDIATE'
AND operation IN ('CN', 'DN')
AND creation_date BETWEEN '2017-06-12' AND '2017-07-12 23:59:59'
ORDER BY
model,
creation_date,
operation
LIMIT 10
OFFSET 1

省略部分字段的表格示例:

| id | payment_plan_id | value | installment | operation |
---------------------------------------------------------
| 1 | b3cdaede | 12 | 1 | NC |
| 2 | b3cdaede | 3.5 | 1 | ND |
| 3 | b3cdaede | 1.2 | 1 | ND |
| 4 | e1d7f051 | 36 | 1 | NC |
| 5 | e1d7f051 | 5.9 | 1 | ND |
| 6 | 00e6a0b4 | 15 | 1 | NC |
| 7 | 00e6a0b4 | 1 | 1 | ND |
| 8 | 00e6a0b4 | 3.6 | 1 | ND |

如何限制 Limit 使其只考虑 NC?

最佳答案

好吧,您上面给出的查询并不能远程执行您描述的操作。假设您实际上想要“最后 10 个 CN 及其 DN”。您也没有解释 CN 和 DN 有哪些共同字段,因此我将假设这些字段是 payment_plan_idinstallment。鉴于这是您获得它的方式:


WITH last_10_cn AS (
选择
值(value),分期付款,payment_plan_id,模型,
创建日期
FROM payment_plant
WHERE 模型 != '立即'
AND 运算 = 'CN'
AND creation_date BETWEEN '2017-06-12' AND '2017-07-12 23:59:59'
订购方式
模型,
创建日期,
手术
限制 10
偏移量 1)
选择 last_10_cn.*,
dn.value 作为 dn_value,dn.model 作为 dn_model,
dn.creation_date 作为 dn_creation_date
FROM last_10_cn JOIN payment_plant 作为 dn
ON last_10_cn.payment_plan_id = dn.payment_plan_id
AND last_10_cn.installment = dn.installment
订购方式
last_10_cn.model,
last_10_cn.creation_date,
last_10_cn.operation
dn.creation_date;

根据实际的连接条件和您真正希望的排序方式调整以上内容。

顺便说一句,您的表结构给您带来了麻烦。 DNs 实际上应该是一个单独的表,带有 CNs 的外键。我意识到这不是大多数 GL 的做法,但 GL 模型早于关系数据库。

关于sql - 对条件应用限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44525654/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com