【问题标题】:join count from the same table来自同一个表的连接计数
【发布时间】:2015-07-07 15:24:00
【问题描述】:

我需要在表中查询一些已开票、已收、已调整的金额,但还需要加入表中的服务样本计数

我可以单独请求,但我希望将结果很好地放在一个数组中

这是我认为可行的查询

SELECT ROUND(SUM(`amount_billed`/1000),2) AS `billed`,
ROUND(SUM(`amount_received`/1000),2) AS `received`, 
ROUND(SUM(`amount_adjusted`/1000),2) AS `adjustment` FROM `acs`.`billing` AS **`amount`**
INNER JOIN (SELECT COUNT(`accession_id`) AS `samples` FROM `acs`.`billing` AS **`count`** 
WHERE year(`count`.`date_billed`) = 2012 AND year(`count`.`date_paid`) = 2012
HAVING COUNT(`accession_id`) > 1) WHERE year(`amount`.`date_billed`) = 2012 AND year(`amount`.`date_paid`) = 2012;

但是 MySQL 返回错误:

错误代码:1248。每个派生表都必须有自己的别名

我为选择查询amount 和连接count 为所有表指定了一个别名。

【问题讨论】:

  • INNER JOINSELECT count('accession_id').... >1) 的派生表没有别名。
  • 哦,是的,现在我看到了 :) 谢谢

标签: mysql join left-join inner-join mysql-error-1248


【解决方案1】:

执行SELECT COUNT(accession_id) AS samples 您正在为单个字段分配别名。

您需要为派生表分配一个别名。你真的很想念它。

尝试更新最后添加的查询:

) as table_b;

在分号之前或第二个查询结束的位置(现在阅读查询不清楚,因为您错过了关闭在 inner_join 上打开的 )

【讨论】:

  • 当我尝试标记它时它不会让我说它说低声誉需要 15 或更多
  • 您不必投票,只需点击向下箭头下方的标记即可:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-20
  • 2021-12-06
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多