提问人:Neil DeGrasse Tyson 提问时间:12/5/2022 最后编辑:marc_sNeil DeGrasse Tyson 更新时间:12/12/2022 访问量:28
合并不同 SQL 查询的列
Merge columns of distinct SQL queries
问:
我有三个不同的SQL查询需要合并。(这里显示的只是两个)。
我试图在给定的括号示例中的 FROM 子句中放置一个查询。
我正在尝试列出用户的订单的最后日期,同时我想列出订单数量,它会起作用,但由于我收到错误:GROUP BY
子查询必须只返回一列
并且由于以下原因而不起作用UNION
每个 UNION 查询必须具有相同数量的列
所以问题很简单:我只想将两个查询的结果合并到一个结果集中。
SELECT DISTINCT order.ordner_nr,name,oDate,
(
SELECT
order_nr, COUNT(*) as ammountOrders
FROM
order
GROUP BY -- Error occurs
order_nr
)
FROM user
INNER JOIN order
using (order_nr)
where (order_nr, oDate) in
(select order_nr, max(oDate)
from order group by order_nr)
我尝试了上面所说的 UNION 和各种各样的事情,我不知道该怎么做,我也是 SQL 的菜鸟
答:
0赞
nbk
12/5/2022
#1
子查询只能返回标量值,例如您的计数,请参阅下面的查询,
您需要加入查询的更多列
SELECT DISTINCT order.ordner_nr,name,oDate,
(
SELECT
COUNT(*)
FROM
order o1
WHERE
o1.order_nr = order.order_nr
) as ammountOrders
FROM user
INNER JOIN order
using (order_nr)
where (order_nr, oDate) in
(select order_nr, max(oDate)
from order group by order_nr)
评论
0赞
Neil DeGrasse Tyson
12/5/2022
但这算上每个订单号......有不同的多个订单号,我需要计算每个订单号
0赞
nbk
12/5/2022
你能提供一个dbfidlle吗,如果不看到结构和数据,就很难理解
0赞
Neil DeGrasse Tyson
12/5/2022
对不起,不知道这是什么......我只需要知道如何将 2 个查询的结果放入一个表中即可
0赞
nbk
12/5/2022
转到页面 dbfiddle.uk/btGcOH30 并添加带有数据的 yor 表,因为我不知道您的结构,我无法确切地告诉您该怎么做。通常,创建一个 select 查询,为您提供所有想要的行,创建一个 Count(*) 而不是 coluumns,并更改 where 子句以与外部 from 子句链接
评论
WITH