天上飞的云传奇 2021-07-22 19:03 采纳率: 83.3%
浏览 25
已采纳

sql语句问题 子查询

SELECT client_id,name,
**(SELECT SUM(invoice_total)FROM invoices GROUP BY client_id) AS total_sales, **
(SELECT AVG(invoice_total)FROM invoices ) AS average ,
(SELECT total_sales - average) AS difference
FROM clients;

SELECT client_id,name,
(SELECT SUM(invoice_total)FROM invoices WHERE client_id = cli.client_id) AS total_sales,
(SELECT AVG(invoice_total)FROM invoices ) AS average ,
(SELECT total_sales - average) AS difference
FROM clients cli;

数据表
img
正确结果
img

问题:为什么第一个sql语句错误 不同的是加粗的子查询
说是子查询超过一个结果 没搞懂这个报错 最终结果也应该是多个结果啊
img
单独执行那一句也和结果一致啊
img

  • 写回答

2条回答 默认 最新

  • Zht_bs 2021-07-22 19:32
    关注

    (SELECT SUM(invoice_total)FROM invoices GROUP BY client_id) AS total_sales,这句查询出来的结果是聚合的表结果集,无法在行结果集中显示。如果有时间看看我当年写的sql初级入门指南对你会有帮助的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已采纳回答 7月22日
  • 创建了问题 7月22日