SQL连接还是PHP循环?或者是什么?

时间:2013-02-16 16:36:55

标签: php mysql

所以我有两个问题要向我提供我需要的信息,并试图找出从中获得结果的最佳方法。我有一张控股表。使用:

SELECT symbol, sum(shares) AS shares, sum(shares * price) AS cost 
FROM Transactions 
WHERE (action <>5) 
    AND date <= '2010-10-30' 
GROUP BY symbol HAVING sum(shares) > 0

导致

AGNC    50.00     1390.0000
RSO     1517.00   9981.8600
T       265.00    6668.7500

然后我有另一个查询

SELECT close FROM History WHERE symbol = $symbol AND date = $date

将返回当天的收盘价。

T    24.40

我想基本上为一个给定的日期计算值,因此每个符号的sum(shares * close)。但我不知道如何做到这一点,循环遍历PHP中的每一行。我希望有一个连接或我可以在sql中做的事情,使数据以我想要的方式返回

1 个答案:

答案 0 :(得分:0)

我认为您可以执行与此类似的操作:A select query selecting a select statement将第二个查询字面上放在第一个查询中。不确定确切的语法,但是像:

SELECT 
    symbol, 
    sum(shares) AS shares, 
    sum(shares * price) AS cost, 
    sum(shares * close) as value 
FROM Transactions 
INNER JOIN History ON (symbol = $symbol AND date = $date)
WHERE (action <>5) 
    AND date <= '2010-10-30' 
GROUP BY symbol HAVING sum(shares) > 0

@popnoodles对你的命名是正确的。如果您使用日期,我认为您需要[日期]。