所以我有两个问题要向我提供我需要的信息,并试图找出从中获得结果的最佳方法。我有一张控股表。使用:
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中做的事情,使数据以我想要的方式返回
答案 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对你的命名是正确的。如果您使用日期,我认为您需要[日期]。