web-dev-qa-db-ja.com

SQL列は出力の最初から最後の位置に移動します

SQL Server Integration Services(SSIS)パッケージ内にSQLクエリがあります。プレビューでは列の順序が正しく表示されますが、実際の出力では異なる列の順序が使用されます。

これは、別のアプリケーションにインポートするために.csvファイルにエクスポートされ、特定の順序にする必要があります。

最初に日付列が必要です。OLE DBソースエディタウィンドウでデータ出力をプレビューするとそのように表示されますが、[列]をクリックしてその順序を表示すると最後の位置で出力することを示しています。

SQLクエリは次のとおりです。

DECLARE @now DATETIME;

SET @now = GETDATE()-45;

SELECT CONVERT(VARCHAR(8), [ORDERS].[STARDAT], 10) AS [MM-DD-YY], [ORDERS].[CLIENTID], 
    [ORDERS].[SAMPNAME], [ANALYTES].[OP10AN], [RESULTS].[FINAL]
FROM [ORDERS], [RESULTS], [RUNS], [ANALYTES], [SamNam]
WHERE [ORDERS].[sampname] = [SamNam].[SName]
    AND [RUNS].[RUNSTS]= 'D' 
    AND [RUNS].[COMPDATE]>@now 
    AND [ORDERS].[SAMPTYPE] IS NULL 
    AND [ORDERS].[ORDNO] NOT IN (308333,308334)  
    AND [ORDERS].[CLIENTID] <> 'Ind Waste' 
    AND [RESULTS].[ORDNO]=[ORDERS].[ORDNO] 
    AND [RESULTS].[RUNNO]=[RUNS].[RUNNO] 
    AND [RESULTS].[ANALPRINT]= 'Y' 
    AND [ANALYTES].[SINONYM] =[RESULTS].[SINONYM] 
    AND [ANALYTES].[TESTCODE] =[RESULTS].[TESTCODE] 
    AND [ANALYTES].[OP10AN] IS NOT NULL
ORDER BY  [ORDERS].[ordno];

クエリが好転している理由を入力してください。

4
Akomarek

OLE DB Sourceの[列]ページで、列の横にあるチェックボックスを使用して順序を変更できます。

列は、チェックされる順序で出力に追加されるため、すべての列のチェックを外してから、正しい順序で再度チェックする必要があります。

列マッピングが「壊れた」ため、下流のデータフロータスクは自分自身を更新する必要がありますが、これは修正する大きな問題ではありません。

3
Jon Seigel