このような要件があります。過去800日間取引を行っていないすべての顧客を削除する必要があります。
私はcustomerIDが主キーであるテーブルcustomerを持っています *クレジットカードテーブルには列customerID、CreditcardIDがあります。ここでcreditcardは主キーです* 列transactiondatetime、CreditcardID、CreditcardTransactionIDを持つトランザクションテーブルはこのテーブルの主キーです。
すべてのトランザクション可能なデータはCreditcardTransactionというビューにあるので、このビューを使用して情報を取得しています
CreditcardTransactionビューのデータ量は約6000万データであるため、過去800日間トランザクションを実行したクレジットカードを取得し、CreditcardIDを取得してテーブルに保存するクエリを作成しました。このクエリは失敗し、ログに記録されます。メッセージログファイルがいっぱいで、メッセージシステムのメモリ不足例外がスローされます。
INSERT INTO Tempcard
SELECT CreditcardID,transactiondatetime
FROM CreditcardTransaction WHERE
DATEDIFF(DAY ,CreditcardTransaction.transactiondatetime ,getdate())>600
CreditcardIDを取得する必要があるので、最後のTransactiondatetimeはいつでしたか
それらのデータをExcelシートに表示する必要があるので、テーブルにデータをダンプしてから、Excelに挿入します。
私が示す最良の解決策は何ですか
私はSSISパッケージ(vs 2008 R2)を使用しており、SPダンプデータをテーブルに呼び出してから、いくつかのビジネスロジックを実行して、最終的にExcelシートにデータを挿入します。
ありがとう王子