SQL Server Codeigniter - 如何使用当前行和列值作为另一列中的参数?

时间:2015-10-30 19:03:29

标签: php sql sql-server codeigniter

我在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

2 个答案:

答案 0 :(得分:1)

您似乎正在尝试加入两个表格StockTransaction,以获得您所说的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