Saya punya query T-SQL sederhana ini, ia memancarkan sekelompok kolom dari sebuah tabel dan juga menggabungkan informasi dari tabel terkait lainnya .
Model data saya sederhana. Saya memiliki acara yang dijadwalkan, dengan peserta. Saya perlu tahu berapa banyak peserta yang berpartisipasi dalam setiap acara.
Solusi saya untuk ini adalah menambahkan CTE yang mengelompokkan acara yang dijadwalkan dan menghitung jumlah peserta.
Ini akan memungkinkan saya untuk bergabung dalam informasi itu per acara yang dijadwalkan. Menjaga kueri tetap sederhana.
Saya ingin menjaga pertanyaan saya tetap sederhana, namun, jika saya di masa depan perlu memiliki hasil sementara tambahan yang dapat diakses selama permintaan sederhana saya, apa yang harus saya lakukan?
Saya akan sangat menyukainya, jika saya bisa memiliki beberapa CTE tetapi saya tidak bisa, kan? Apa pilihan saya di sini?
Saya telah mengesampingkan pandangan dan melakukan hal-hal di lapisan data aplikasi. Saya lebih suka mengisolasi kueri SQL saya.
sumber
[ ,...n ]
dalam[ WITH <common_table_expression> [ ,...n ] ]
. Contoh C, "Menggunakan beberapa definisi CTE dalam satu permintaan," sebut ini secara eksplisit. Sayangnya, contoh ini tidak disediakan dalam dokumentasi untuk SQL 2008 dan lebih tua (yaitu, contoh tidak diberikan ketika OP memposting pertanyaan)UNION ALL
Anda tentu dapat memiliki beberapa CTE dalam ekspresi kueri tunggal. Anda hanya perlu memisahkannya dengan koma. Berikut ini sebuah contoh. Dalam contoh di bawah ini, ada dua CTE. Satu dinamai
CategoryAndNumberOfProducts
dan yang kedua dinamaiProductsOverTenDollars
.sumber