我正在使用Oracle SQL创建一个视图。
CREATE OR REPLACE VIEW myview AS SELECT
[various other columns ommited],
SUM (mt.Quantity) as "MY_QUANTITY",
SUM (mt.Quantity) / at.VALUE as "EXPECTED_QUANTITY",
[more columns ommited]
FROM MY_TABLE mt LEFT JOIN ANOTHER_TABLE at ON mt.PK = at.FK
GROUP BY [various other columns that were ommited]
我遇到的问题是与组织联系的问题。如果我将其删除,则会成功创建视图。我的问题是如何分配这笔钱。我尝试在该行中使用“My_Quantity”别名,而不是总和,但据我所知,这不起作用。我得到的错误是“不是按表达式分组”。
编辑回复评论:如果我将“sum(mt.Quantity)/at.VALUE”添加到我的GROUP BY中,我会得到一个警告“语法错误。部分识别的规则(铁路图)”。如果我尝试添加别名,则会收到“无效标识符”错误
1条答案
按热度按时间bwleehnv1#
这个问题有些奇怪。如果通过mt主键连接表mt和at,则表mt中只有一行受聚合影响,这意味着mt表中没有什么可以求和的。如果示例数据如下所示:
..。如果在(mt.MT_PK=at.FK_MT)上连接表,则使用或不使用SUMMING的SQL都会得到相同的结果
两者的结果都是..。
..。如果还有另一个选项来连接示例数据中的表,如Q_ID,那么……
致敬..。