60 を超える SQL クエリを 1 つのクエリに結合し、BCP 経由で結果を 1 つの.CSV
ファイルにエクスポートしようとしています。
それらをどうにか組み合わせて、UNION ALL
2つのクエリで機能する1つのBCPコマンドを実行できましたが、> 40では機能しませんでした:-)
エラーが発生します:
クエリ ヒントが最大コマンド バッファ サイズの 8191 バイトを超えています (24324 バイトの入力)
クエリはほぼ同じですが、Location
毎回最後だけが異なります。
SELECT
ISNULL(REPLACE(LEFT(SUM([Sales Amount (Actual)]) * 1.21, LEN(SUM([Sales Amount (Actual)])) -18 ),'.', ','),0) Result
FROM
_DBHERE_
WHERE
([Item] = 1)
AND ([Date] = CAST(GETDATE() AS DATE))
AND ([Location] = '1')
SELECT
ISNULL(REPLACE(LEFT(SUM([Sales Amount (Actual)]) * 1.21, LEN(SUM([Sales Amount (Actual)])) -18 ),'.', ','),0) Result
FROM
_DBHERE_
WHERE
([Item] = 1)
AND ([Date] = CAST(GETDATE() AS DATE))
AND ([Location] = '2')
これを試して
SELECT
[Location]
, ISNULL(REPLACE(LEFT(SUM([Sales Amount (Actual)]) * 1.21, LEN(SUM([Sales
Amount (Actual)])) -18 ),'.', ','),0) Result
FROM
_DBHERE_
WHERE [Item] = 1
AND [Date] = CAST(GETDATE() AS DATE)
AND [Location] IN ('1', '2', ......) -- replace ... with comma separated list of required values
GROUP BY [Location]
;
[場所] の値を制限する場合は、「AND [場所] IN」行のみが必要です。すべての場所が必要な場合、この行は必要ありません。または、コメントされているように、場所テーブルに参加して、場所を制限するために必要な基準を使用できます
OP からのコメントに基づいて更新[Location] テーブルがあると仮定すると、次のことができます。
SELECT
L.[Location]
, ISNULL(REPLACE(LEFT(SUM(S.[Sales Amount (Actual)]) * 1.21, LEN(SUM(S.[Sales
Amount (Actual)])) -18 ),'.', ','),0) Result
FROM [Location] L
LEFT OUTER JOIN [SalesData] S
ON S.[Location] = L.[Location]
AND S.[Item] = 1
AND S.[Date] = CAST(GETDATE() AS DATE)
WHERE L.[Location] IN ('1', '2', ......) -- replace ... with comma separated list of required values
GROUP BY L.[Location]
;
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加