Tidak terlalu jelas dari pertanyaan Anda parameter mana yang mengalami kesulitan dalam menerapkan pemfilteran "SEMUA". Tetapi dari melihat dua kueri Anda, sepertinya itu adalah @p_ServerName
parameter. Dalam kueri pertama Anda, dua lainnya tampaknya telah melakukan pemfilteran 'SEMUA' dengan benar.
Jadi masalahnya pasti ada di sini:
(c1.SystemName = @p_ServerName OR c1.SystemName = c1.SystemName)
Pertama, apa yang ingin Anda capai dengan bagian kedua? c1.SystemName=c1.SystemName
akan selalu benar (kecuali c1.SystemName adalah NULL
dan jika itu adalah tujuan Anda, gunakan c1.SystemName IS NOT NULL
Saya pikir ini akan terlihat lebih seperti:
([email protected]_ServerName OR @p_ServerName='all')
Begitulah cara Anda menerapkan dua parameter lainnya, jadi mungkin saya melewatkan sesuatu.
Juga, saya tidak yakin apa yang Anda maksud ketika Anda mengatakan bahwa solusi kueri UNION harus bagaimana SSRS melakukan sesuatu. SSRS tidak menulis ulang kueri Anda berdasarkan parameter, itu hanya menempelkan nilai itu dalam variabel tersebut untuk Anda gunakan dalam kueri Anda. Jika parameter Anda @p_ServerName
adalah string maka itu hanya variabel VARCHAR dengan karakter "semua" di dalamnya.