我正在尝试运行一个查询,对项的值求和,然后对该和的值进行联接。
所以在下面的代码中,合同是我想要加入的,但是我不确定这是否可行。
SELECT `items_value`.`ContractId` as `Contract`,
`items_value`.`site` as `SiteID`,
SUM(`items_value`.`value`) as `Contract_For`,
`contractitemlists`.`Text` as `Contracted_Text`
FROM items_value
LEFT JOIN contractitemlists ON (`items_value`.`Contract_For`) = `contractitemlists`.`Ref`;
WHERE `items_value`.`ContractID`='2';
当我在过去遇到类似的问题时,我只是创建了一个保存总和的视图,然后在另一个视图中加入该视图。
目前,上面的示例仅适用于一个伪值,但它是一个存储过程,用户在其中选择constract。我现在得到的错误是“未知列” items_value
. Contract_For
1条答案
按热度按时间368yc8dk1#
您不能在任何地方使用别名或使用select子句中的表达式进行聚合,但必须使用and order by*;您需要使第一个“部分”成为子查询,然后连接到该子查询。
它可能更容易理解,虽然有点过于简单化和不完全正确,如果你从这个Angular 看它的评价顺序去。。。
from(注意:join仅在from中)
哪里
分组依据
选择
有
订货人
在实际实现中,大多数sql实现实际上使用每个部分的信息来优化其他部分(比如使用一些where条件来减少在from中加入的记录);但这是必须遵守的概念秩序。
您的查询需要如下所示:
但正如其他人所提到的,缺少一个小组是需要研究的;如“如果有多个站点值怎么办”