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

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 无用
    打赏 举报
查看更多回答(1条)

相关推荐 更多相似问题