【发布时间】:2015-05-19 14:49:58
【问题描述】:
第一次查询:(为了简化,我加了count(*))
select count(*) from Sales_order_line sol
where
sol.grant_type_id is null
AND
sol.quantity - NVL ((SELECT SUM (salesorder15_.assigned_quantity) FROM license_link_sales_ord_ln salesorder15_
WHERE salesorder15_.sales_order_line_id = sol.ID),0) > 0;
第二次查询:(为了简化,我加了count(*))
select count(*) from Sales_order_line sol
INNER JOIN license_link_sales_ord_ln sola
ON sol.id=sola.sales_order_line_id
where
sol.grant_type_id is null;
第一个查询返回 56119,第二个查询返回 362260。我想组合得到 (56119 +362260) 作为结果的查询。
【问题讨论】:
-
所以你要
OR这两个查询。你确定结果是不同的吗?如果 both 查询返回任何Sales_order_line,OR将返回 less 行。 -
您的意思是 56119 + 362260 的总和还是字面意义上的“(56119 + 362260)”?另外您使用的是什么 DBMS?
-
目的不是减少行数。它应该能够从第一个查询和第二个查询中获取所有行。 count(*) 只是为了简化,它实际上获取了许多行。
-
您能否提供示例数据和您的预期输出?我真的不知道你想达到什么目的
-
您可以这样描绘查询:select sol.ID , sol.sales_customer_name ,sol.sales_customer_number ,sol.sales_order_number from Sales_order_line sol where sol.grant_type_id is null AND sol.quantity - NVL (( SELECT SUM (salesorder15_.assigned_quantity) FROM license_link_sales_ord_ln salesorder15_ WHERE salesorder15_.sales_order_line_id = sol.ID),0) > 0;