2

したがって、必要な情報を提供するための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

これと似たようなことができると思います: A select query select statement 2 つ目のクエリを文字通り最初のクエリに入れます。正確な構文についてはわかりませんが、次のようになります。

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 に答える