2

所以我有两个查询给我我需要的信息,我试图找出从他们那里得到结果的最佳方法。我有一个控股表。使用:

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

我想基本上为给定的日期计算值,所以每个符号的总和(股数 * 关闭)。但我不知道如何在 php 中循环遍历每一行。我希望有一个连接或我可以在 sql 中执行的操作以使数据以我想要的方式返回

4

1 回答 1

0

我认为您可以执行类似的操作:选择查询选择选择语句 将您的第二个查询按字面意思放在第一个查询中。不确定确切的语法,但喜欢:

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 对您的命名是正确的。如果您使用日期,我认为您需要[日期]。

于 2013-02-16T16:44:16.527 回答