从同一个表中连接计数

时间:2015-07-07 15:24:01

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

我需要在表格中查询一些已结算,已收到,已调整的金额,但需要加入表格中还有已提供服务的样本计数

我可以单独请求,但我想在一个数组中很好地得到结果

这是我认为可行的查询

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的别名。

1 个答案:

答案 0 :(得分:0)

执行SELECT COUNT(accession_id) AS samples您要为单个字段指定别名。

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

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

) as table_b;

在分号之前或第二个查询结束之前(由于你错过了关闭在inner_join上打开的),现在不清楚阅读查询。