如何将两个查询合并为一个并生成一行

How to merge Two queries into one and result in one row

SELECT lp.lead_bucket_no , case when p.product = 'S-400' then qty end as 'S400' , case when p.product = 'Dish Antenna' then qty end as 'DishAntenna' FROM lead_products lp INNER JOIN products p ON p.product_id = lp.product_id WHERE type = 'stock' GROUP BY lead_bucket_no ORDER BY lp.lead_bucket_no

SELECT lp.lead_bucket_no , case when p.product = 'S-400' then qty end as 'S400' , case when p.product = 'Dish Antenna' then qty end as 'DishAntenna' FROM lead_products lp INNER JOIN products p ON p.product_id = lp.product_id WHERE type = 'order' GROUP BY lead_bucket_no ORDER BY lp.lead_bucket_no

如何合并这两个查询并在单行中获取记录。两个查询中只有类型不同。 enter image description here

我想你只想在 WHERE 子句中使用 OR(或 IN):

SELECT lp.lead_bucket_no, 
       SUM(case when p.product = 'S-400' then qty end) as S400,
       SUM(case when p.product = 'Dish Antenna' then qty end) as DishAntenna 
FROM lead_products lp INNER JOIN
     products p
     ON p.product_id = lp.product_id
WHERE type IN ('stock', 'order')
GROUP BY lead_bucket_no
ORDER BY lp.lead_bucket_no;

您还需要对不在 GROUP BY 子句中的表达式进行某种聚合。您可能还想按 TYPE 进行聚合。不清楚你想要的最终输出是什么。