我在SQL数据库查询中遇到了一些麻烦。
假设我有2个查询,查询1和查询2
查询1结果是:
ID Name
1 Soap
2 Spoon
3 Fork
4 Toothpaste
在查询2中,我需要从查询1获取ID以获取价格,因此第三列中的结果取决于ID /第一列
ID Name Price
1 Soap 10000
2 Spoon 20000
3 Fork 30000
4 Toothpaste 40000
我的查询:
SELECT t.ID, s.NAME FROM TRANSACTION t, STOCK s WHERE s.ID=t.ID
我想改变这个查询
SELECT t.ID, s.NAME, ????? FROM TRANSACTION t, STOCK s WHERE s.ID=t.ID
答案 0 :(得分:1)
您似乎正在尝试加入两个表格Stock
和Transaction
,以获得您所说的Price
等于每个项目的sum of quantity * price
Stock
。
你可以这样做:
SELECT s.[ID], s.[Name], SUM(t.Price) as [Price]
FROM [STOCK] s
LEFT JOIN [TRANSACTION] t ON s.[ID] = t.[ID]
GROUP BY s.[ID], s.[Name]
ORDER BY s.[ID] ASC
这将获取所有Stock
个项目,并将Transaction
表中的相应值相加。
答案 1 :(得分:0)
似乎您已经拥有了所需的内容,只需添加最后一栏: s.Price
SELECT t.ID, s.Name, s.Price
FROM TRANSACTION t, STOCK s
WHERE s.ID = t.ID