セットアップは次のとおりです。
Table 1: table_1
column_id
column_12
column_13
column_14
Table 2: table_2
column_id
column_21
column_22
選択ステートメント:
DECLARE @Variable
INT SET @Variable = 300
SELECT b.column_id,
b.column_12,
SUM(b.column_13) OVER (PARTITION BY b.column_id ORDER BY b.column_12) AS sum_column_13,
@Variable / nullif(SUM(b.column_13) OVER (PARTITION BY b.column_id ORDER BY b.column_12),0) AS divide_var,
(b.column_13*100) / nullif(b.column_14,0) AS divide_column_3
FROM dbo.table_1 b
WHERE b.column_12 IN ('AM','AJ','A-M','A-J','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q');
これはうまく機能し、すべての式が機能し、正しい結果が表示されます。
b.column_id
が取得さ
b.column_12
れる が取得される すべての値
sum_column_13
の合計( で分割)に等しい で除算された変数に等しい で除算されるcolumn_13
column_id
divide_var
sum_column_13
divide_column_13
column_13
column_14
ただし、静的ではなく@Variable
fromを取得しようとしています。table_2
両方のテーブルには がありcolumn_id
、それらをリンクすることができます。ただし、この値は一意ではありません。
の実際の数は;@Variable
から取得する必要があります。table_2
各 column_idのすべての値を合計しますcolumn_21
。(sum_column_13 に似たもの)
JOIN
両方を別々に動作させることはできますが、それらを (または追加SELECT
のクラスで)組み合わせようとすると、すべてが暴走します。たとえば、JOIN
ステートメントを使用する場合、WHERE
クラスはJOIN
ステートメントではなくステートメントにのみ適用されSELECT
ます。column_id
現在の からの結果を使用し、SELECT
これを使用して から必要なデータを取得することですtable_2
。
私の説明があまり明確でないことは理解しています。これが SQLFiddleです。ご覧のとおり、現在の変数は の 2 つの値を合計したものtable_2
です。お役に立てれば。
ありがとう、