【发布时间】:2013-12-29 21:14:23
【问题描述】:
我有以下 SQL 表和查询,如以下 sqlfiddle 所示:http://sqlfiddle.com/#!2/37eda/1/0。
当前结果如下所示:
id definition_id service_id provider_id amount
2 1 25 24 200.00
3 1 NULL 24 300.00
20 3 25 24 700.00
30 4 NULL 24 800.00
我需要将查询限制为每个条目仅显示一个definition_id。如果有两个definition_id,它应该使用具有非NULL service_id 的一个。正确的结果应该是:
id definition_id service_id provider_id amount
2 1 25 24 200.00
20 3 25 24 700.00
30 4 NULL 24 800.00
这里正确的 SQL 查询是什么?
【问题讨论】:
-
我贴的sqlfiddle里都有显示(创建表语法,我正在使用的查询等)请看一下。
-
我的意思是你尝试过什么来提出正确的查询?
-
@DanielA.White 各种
GROUP BY声明,但我无法得到正确的声明来尊重我需要得到的内容。 -
如果有两个 definition_ids 和两个关联的 service_ids 怎么办?
-
select definition_id, max(service_id), provider_id, amount from billing_billingmatrix where (provider_id=24 or provider_id is null) and (service_id=25 or service_id is null) group by definition_id,这在上述情况下有效,但似乎并非在所有情况下都有效。