現在、データベース内のいくつかの販売エリアの値を報告する必要があるという問題があります。これの 2 番目の `SELECT は、私が知りたいことを与えてくれます。最初の部分も、私が知りたいことを与えてくれます。しかし、最初のクエリの結果を2番目の行として表示する方法が可能かどうか興味があります...
@something
2 番目に追加SELECT
すると、列として表示され、次のような結果が得られます。
TOTAL | CATEGORY | (NO COLUMN NAME)
-------------------------------------------
70000.11 | CATEGORY 1 | 118500
31200.11 | CATEGORY 2 | 118500
51114.11 | CATEGORY 3 | 118500
2215.11 | CATEGORY 4 | 118500
54321.11 | CATEGORY 5 | 118500
しかし、基本的には、結果にそれを挿入できるかどうかを調べたいので、次のように表示されます。
TOTAL | CATEGORY
----------------------
70000.11 | CATEGORY 1
31200.11 | CATEGORY 2
51114.11 | CATEGORY 3
2215.11 | CATEGORY 4
54321.11 | CATEGORY 5
118500.00 | SOMETHING
列名などを変更したので、混乱しないことを願っています。一時テーブルを生成し、それに値をプルして、それに INSERT INTO @myTable を実行しようと考えましたか? 私はそれに少し慣れていますが、それが最も効率的な方法かどうかはわかりません。
最終的に、これはストアド プロシージャに移行します。
USE Database1
GO
DECLARE @something NUMERIC
SET @something = (SELECT
ABS(SUM(ENTRY_AMT)) AS 'Total'
FROM
Invoices AS gl
LEFT JOIN Orders AS iod ON gl.ORDER_NO = iod.ORDER_NO AND gl.LINE_NO = iod.LINE_NO AND gl.APPEND = iod.APPEND
WHERE
gl.YR = 13
AND gl.PERIOD = 1
AND ENTRY_SRC = 'revenue'
AND iod.CATEGORY_DESC IN ('GENERAL', 'OTHER', 'RANDOM')
AND (gl.GL_ACCOUNT_NO BETWEEN 7100000000 AND 7100999999)
AND gl.ITEM_NO NOT LIKE '%RS'
AND gl.ITEM_NO NOT LIKE '%RA'
)
(SELECT
ABS(SUM(ENTRY_AMT)) AS 'Total',
CATEGORY_DESC AS 'Category'
FROM
Invoices AS gl
LEFT JOIN Orders AS iod ON gl.ORDER_NO = iod.ORDER_NO AND gl.LINE_NO = iod.LINE_NO AND gl.APPEND = iod.APPEND
WHERE
gl.YR = 13
AND gl.PERIOD = 1
AND ENTRY_SRC = 'revenue'
AND iod.CATEGORY_DESC NOT IN ('GENERAL', 'OTHER', 'RANDOM')
AND (gl.GL_ACCOUNT_NO BETWEEN 7100000000 AND 7100999999)
AND gl.ITEM_NO NOT LIKE '%RS'
AND gl.ITEM_NO NOT LIKE '%RA'
GROUP BY CATEGORY_DESC
)