IMHOあなたはDynamic SQL
は必要ありません。以下のようなコードを変更することができます。これは、達成しようとしているのと同じ結果をもたらすでしょう。構文エラーがある場合はそれを確認してください。私は完全なクエリを提供していたが、あなたの質問では、コードの代わりにスクリーンショットがあります。だからここに行く。
あなたがTemp Tables
を使用する場合:
SELECT
......
INTO #Settlement_Data_Grouped
FROM #Settlement_Data
WHERE (Payment_Date < Settlement_Date AND @outputType = 1) ---This will be true when you have @outputType = 1
OR @outputType = 0 ---This will be true when you have @outputType = 0
GROUP BY Part_No
,NAME
,Order_No
,Invoice_No
-------------
SELECT
......
FROM #Settlement_Data_Grouped
あなたがCTE
を使用する場合:
WITH Settlement_Data_Grouped
AS (
SELECT
......
FROM #Settlement_Data
WHERE (Payment_Date < Settlement_Date AND @outputType = 1) ---This will be true when you have @outputType = 1
OR @outputType = 0 ---This will be ture when you have @outputType = 0
GROUP BY Part_No
,NAME
,Order_No
,Invoice_No
)
SELECT
......
FROM Settlement_Data_Grouped
このページの "関連する"リンクのうち、[this](https://stackoverflow.com/)質問/ 2917728/t-sql-dynamic-sql-and-temp-tables?rq = 1)と[this](https://stackoverflow.com/questions/40521021/insert-data-into-temporary-table-from -dynamic-query-table-output?rq = 1)を指定します。彼らは助けてくれますか?そもそも一見すると、動的SQLを使用する必要があることは明らかではありません。反復コードは必ずしもひどいものではありません。 – HABO