【发布时间】:2021-10-25 18:12:21
【问题描述】:
我正在尝试通过执行 amount*price_for_each 来计算交易的总价值。
例如,5 个大蒜、8 个面包、1 个鸡肉和 1 个米饭。大蒜(从物品)的价格是25,面包是200,鸡肉是450,米饭是200。5⋅25+8⋅200+1⋅450+1⋅200=2125
CREATE TABLE Items(
price_for_each INT,
name VARCHAR(20),
PRIMARY KEY(name)
);
CREATE TABLE ItemsInTransactions(
name VARCHAR(20),
t_id INT,
amount INT,
FOREIGN KEY(name) references Items(name),
FOREIGN KEY(t_id) references Transactions(t_id)
);
CREATE VIEW TransactionValue AS
SELECT DISTINCT t_id,sum(amount*price_for_each) as value
FROM Items price_for_each, ItemsInTransactions amount
GROUP BY t_id
ORDER BY t_id;
我认为问题出在我看来,输出的值远高于预期,这使我相信存在算术错误(可能相乘太多)。如果有人可以解释一种更好的方法来计算我的输出,我们将不胜感激
【问题讨论】:
-
此处无需执行 SELECT DISTINCT,您的 GROUP BY 不会返回重复项。 (事实上,这种组合引起了很多人的注意......)
-
不要破坏你的问题。
-
请勿以使发布的合理答案无效的方式编辑问题帖子。 help centerMeta Stack Exchange请use text, not images/links, for text--including tables & ERDs。转述或引用其他文本。只提供您需要的东西并将其与您的问题联系起来。仅将图像用于无法表达为文本或增强文本的内容。在图片中包含图例/键和说明。