Melakukan operasi seperti SUMIF menggunakan SQL Server Report Builder

Saya mencoba menghasilkan jumlah bersyarat di SQL Server Report Builder 3.0.

Ekspresi saya terlihat seperti ini:

=Sum(Iif(Fields!ProjectTypeID.Value=2,Fields!kWp.Value,0))

Saya berharap ungkapan ini akan menghasilkan jumlah kWp semua proyek tipe 2.

Sayangnya, hal ini tidak terjadi. Dan sepertinya saya tidak tahu alasannya. Itu hanya mengembalikan hasil 0, meskipun saya tahu ada nilai bukan nol di kolom kWp, dan kolom tersebut tidak berisi nol.

Seorang kolega berhasil mendapatkan hasil positif dengan menggantikannya

Fields!kWp.Value 

dengan

1 * Fields!kWp.Value

Tapi kami tidak tahu mengapa ini berhasil, dan karena itu, kami tidak bisa mempercayai jawabannya.

Bagaimana saya bisa membuat jumlah bersyarat ini berfungsi dengan sendirinya?


person Daniel Neal    schedule 14.06.2012    source sumber
comment
Apakah Anda memiliki nilai desimal yang disimpan di kolom kWp?   -  person praveen    schedule 14.06.2012
comment
Ya - semuanya merupakan nilai desimal - kira-kira berkisar antara 0 - 100   -  person Daniel Neal    schedule 14.06.2012
comment
Maka Anda perlu memasukkan nilainya ke int SUM(iif(Fields!ProjectTypeID.Value = 2,CINT(Fields!FieldkWp.Value),0)   -  person praveen    schedule 14.06.2012
comment
Bukankah ini akan menghilangkan bagian pecahannya? Ini penting, dan saya tidak ingin membulatkan semua angka 3,4 menjadi 3, dan seterusnya.   -  person Daniel Neal    schedule 14.06.2012
comment
Jadi lebih baik ubah semuanya menjadi desimal SUM(iif(Fields!ProjectTypeID.Value = 2,cdbl(Fields!FieldkWp.Value),0.00)   -  person praveen    schedule 14.06.2012
comment
Terima kasih banyak! Bisakah Anda menjadikan ini jawaban sehingga saya dapat menandainya sebagai jawaban?   -  person Daniel Neal    schedule 14.06.2012
comment
Saya telah memperbarui jawaban saya   -  person praveen    schedule 14.06.2012


Jawaban (4)


Tipe data kolom 'kWp' adalah Desimal sehingga Anda perlu mengonversi nilai default menjadi 0,00 atau mengubah kolom menjadi dua kali lipat

 SUM(iif(Fields!ProjectTypeID.Value = 2,cdbl(Fields!kWp.Value),0.00))
person praveen    schedule 14.06.2012

Untuk mendapatkan sum dari kWp semua proyek bertipe 2, persamaannya adalah sebagai berikut,

=IIf(Fields!ProjectTypeID.Value=2,sum(Fields!kWp.Value),0) 

Saya harap ini akan membantu Anda.

person Venaikat    schedule 14.06.2012
comment
Terima kasih atas jawaban anda. Apakah Anda yakin ini hanya akan menjumlahkan nilai yang benar? Ditulis dengan cara ini, sepertinya if akan dijalankan terlebih dahulu - dan kemudian mengembalikan jumlah semua bidang. - person Daniel Neal; 14.06.2012
comment
Saya mencoba dan hasilnya sama dengan =SUM(Fields!kWp.Value) - person HEDMON; 16.08.2019

Saya punya masalah serupa, ini berhasil untuk saya:

=Sum(iif(Fields!date_break.Value = "0001-01-01",Fields!brkr_fee.Value, nothing))

zb

person Zalek Bloom    schedule 14.05.2018

Untuk mendapatkan jumlah bersyarat Anda dapat mencoba ungkapan ini

=sum(IIf(Fields!balance.Value > 0,(Fields!balance.Value),0))

Ini hanya menjumlahkan angka positif jika tidak maka akan menambahkan 0 ke total, Anda dapat melakukannya dengan bijak sebaliknya.

person Ghayour Khan    schedule 29.04.2017