0

テスターデータベースのインタビューに関するいくつかの質問に挑戦しています。クライアントサイドのバックグラウンドから来て、私はスクラッチに立ち向かうためにいくつかのことをしています、そして私は現在苦労しています。

「TradeID」、「Ticker」、「Price」、および「Volume」のポートフォリオテーブルがあります。現在、テーブルには3行、10,000の2つの購入と10,000の1つの販売があり、すべて同じ会社です。私は基本的に、価格を考慮して毎日のポートフォリオの価値を計算する必要があります。したがって、現在の価格が1.00の場合、合計値は10,000になります。

私は可能な限りすべてのサブクエリを試しましたが、それを機能させることができません。エラーによって集計またはグループ化されてしまいます。助けていただければ幸いです。私が何かを逃した場合はお詫び申し上げます。

編集:私は次のようなクエリを作成しようとしています:

select
 sum
((sum(trade.volume) * 1.0) -
  (sum(trade.volume * trade.price)))

from trade 

Edit2:私が現在持っているテストデータと例を簡単にする:

1.0は終値です。私は3つの取引をしています。3つのtrade.volumeは+10,000、+ 10,000、-10,000になります-すべて同じ会社のtrade.price:1.1-は株式が購入された価格です

したがって、sum((trade.volume)* 1)を使用すると、オープンボリュ​​ーム(sum(trade.volume * trade.price))からの現在の値が購入価格として11,000になるため、10,000を取得しようとしています。

4

2 に答える 2

0

売りがマイナスの場合

Select ticket, sum(volume*trade) from table group by ticket
于 2012-04-05T01:00:55.960 に答える
0

これがあなたが持っているものだと思います:

CREATE TABLE Portfolio (
    TradeID int,
    Ticker varchar(10),    -- the company identifer
    Price money,
    Volume int,    -- probably not actually an int
)

データ付き:

INSERT Portfolio VALUES ( 1, 'ACME', 1.1, 10000) -- a buy
INSERT Portfolio VALUES ( 2, 'ACME', 1.1, 10000) -- a buy
INSERT Portfolio VALUES ( 3, 'ACME', 1.1, -10000) -- a sell

与えられた

基本的に、価格が与えられた場合の毎日のポートフォリオ値を計算する必要があります。したがって、現在の価格が 1.00 の場合、値の合計は 10,000 になります。

現在のネットに今日の価格を掛けたものが欲しいと思います:Volume

DECLARE @priceNow money
SET @priceNow = 1.0

DECLARE @currentValue money
SELECT @currentValue = @priceNow * SUM(Volume) FROM Portfolio WHERE Ticker = 'ACME'

取引価格は、現在所有されている価値を知ることとは無関係であることに注意してください。

于 2012-04-05T08:08:30.557 に答える