download sample code
Setelah sebelumnya saya menunjukkan bagaimana melakukan Top N dengan menggunakan Conditional Split dan Script Component, kali ini saya akan menggunakan Top Data untuk melakukannya. Contoh yang digunakan hampir sama dengan contoh sebelumnya, tetapi saya juga akan mengambil Top 21 – Top 40. Sekadar mengingatkan kembali, saya akan mulai step-by-step nya dari awal.
Pertama buat sebuah Integration Services Project menggunakan BI Development Studio dengan nama TopNSSISwithTopData

Setelah Package.dtsx terbuka, tambahkan sebuah OLE DB Connection ke database AdventureWorks
Tambahkan dua buah variable dengan nama Top20 dan Top2140 dengan tipe data Int32
Tambahkan sebuah Data Flow Task ke dalam Control Flow dan beri nama DFT Top 40 Purchase Order
Klik ganda pada DFT Top 40 Purchase Order, lalu tambahkan sebuah OLE DB Source dengan nama Extract Purchase Order
Klik ganda Extract Purchase Order, isi OLE DB connection manager dengan AdventureWorks, pilih SQL command sebagai Data access mode, isi SQL command nya dengan select [PurchaseOrderID], [TotalDue] from [Purchasing].[PurchaseOrderHeader] order by [TotalDue] desc lalu klik OK
Tambahkan Top Data kedalam Data Flow dan beri nama Top 20, lalu hubungkan Extract Purchase Order dengan Top 20
Klik ganda pada Top 20, isi Top dengan 20, dan pilih Send to Rest Output pada Configure Rest Row, lalu klik OK. Dengan konfigurasi ini, Top data akan mengirim 20 data pertama ke Top Output, dan mengirimkan sisa datanya ke Rest Output
Tambahkan sebuah Row Count, lalu hubungkan Top 20 dengan row count tadi. Pilih Top Output pada dialog Input Output Selction, lalu klik OK. Beri nama Top 20 Count pada Row Count
Klik ganda Top 20 Count, isi VariableName dengan User::Top20
Tambahkan Top Data dan beri nama Top 21-40, lalu hubungkan Top 20 dengan Top 21 – 40. Isi nilai Top pada Top 21 – 40 dengan 20, lalu klik OK
Tambahkan juga Row Count dan beri nama Top 21 – 40 Count. Hubungkan Top 21 – 40 dengan Top 21 – 40 Count, pilih Top Output pada dialog Input Output Selection. Isi VariableName pada Top 21 – 40 Count dengan User::Top2140
Dan inilah hasilnya pada saat dieksekusi
