Sql 对某一条件施加限制
我有一个查询,返回一个操作的贷方票据CN和借方票据DN,每个CN都有两个或多个DN,由字段payment\u plan\u id引用。例如,在分页时,我必须带10个操作,即10个CN和它们的DN,但如果我将限制保留为10,它还将计算我必须在查询中返回的交易的借方票据。因此,它只会给我带来2个、3个或4个操作,具体取决于信用票据附带的DNs数量Sql 对某一条件施加限制,sql,postgresql,Sql,Postgresql,我有一个查询,返回一个操作的贷方票据CN和借方票据DN,每个CN都有两个或多个DN,由字段payment\u plan\u id引用。例如,在分页时,我必须带10个操作,即10个CN和它们的DN,但如果我将限制保留为10,它还将计算我必须在查询中返回的交易的借方票据。因此,它只会给我带来2个、3个或4个操作,具体取决于信用票据附带的DNs数量 SELECT value, installment, payment_plan_id, model, creation_date, ope
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 |
我如何限制这个限制,以便只考虑NCS?
< P>,上面给出的查询并不能描述你所描述的。假设你真的想要最后10个CN和他们的DN。您也没有解释CN和DN有什么共同点,所以我假设这些字段是payment\u plan\u id和分期付款。考虑到这一点,您可以通过以下方式获得: 以最后10分钟为准 选择 价值、分期付款、付款计划、id、型号、, 创建日期 从工厂付款 模型在哪里!='立即的 AND operation='CN' 创建日期介于“2017-06-12”和“2017-07-12 23:59:59”之间 订购人 模型 创建日期, 活动 限制10 偏移量1 选择最后一个\u 10\u cn.*, dn.value作为dn\u值,dn.model作为dn\u模型, dn.creation\u日期作为dn\u creation\u日期 从上个月起,作为dn加入付款工厂 在最后一个\u 10\u cn.payment\u plan\u id=dn.payment\u plan\u id 最后一次安装=dn.instance 订购人 最后一个10中国模式, 上一个创建日期, 最后一次行动 dn.创建日期; 根据实际的连接条件和您真正希望的排序方式调整上述内容顺便说一句,你的桌子结构给你带来了麻烦。DNs实际上应该是一个单独的表,带有CNs的外键。我意识到大多数GLs并不是这样做的,但GL模型早于关系数据库。好吧,您上面给出的查询远远不能实现您所描述的。假设你真的想要最后10个CN和他们的DN。您也没有解释CN和DN有什么共同点,所以我假设这些字段是payment\u plan\u id和分期付款。考虑到这一点,您可以通过以下方式获得: 以最后10分钟为准 选择 价值、分期付款、付款计划、id、型号、, 创建日期 从工厂付款 模型在哪里!='立即的 AND operation='CN' 创建日期介于“2017-06-12”和“2017-07-12 23:59:59”之间 订购人 模型 创建日期, 活动 限制10 偏移量1 选择最后一个\u 10\u cn.*, dn.value作为dn\u值,dn.model作为dn\u模型, dn.creation\u日期作为dn\u creation\u日期 从上个月起,作为dn加入付款工厂 在最后一个\u 10\u cn.payment\u plan\u id=dn.payment\u plan\u id 最后一次安装=dn.instance 订购人 最后一个10中国模式, 上一个创建日期, 最后一次行动 dn.创建日期; 根据实际的连接条件和您真正希望的排序方式调整上述内容
顺便说一句,你的桌子结构给你带来了麻烦。DNs实际上应该是一个单独的表,带有CNs的外键。我意识到大多数GLs并不是这样做的,但GL模型早于关系数据库。您是按SELECT中未包含的列排序的。这似乎很奇怪。您是按SELECT中未包含的列排序的。这似乎很奇怪。