kzen.dev
  • Pertanyaan
  • Tag
  • Pengguna
Notifikasi
Imbalan
Registrasi
Setelah Anda mendaftar, Anda akan diberitahu tentang balasan dan komentar untuk pertanyaan Anda.
Gabung
Jika Anda sudah memiliki akun, masuk untuk memeriksa pemberitahuan baru.
Akan ada hadiah untuk pertanyaan, jawaban, dan komentar tambahan.
Lebih
Sumber
Sunting
Matthew Colley
Matthew Colley
Question

Kueri Jumlah MYSQL dengan Kondisi IF

Saya sedang membuat kueri untuk laporan dengan beberapa kondisi IF pada SUM. Saya mengalami masalah dengan beberapa kondisi IF pada SUM.

Berikut adalah kueri:

SELECT SUM(`totalamount`) AS Total, 
SUM(`PayPalFee`) AS Fees,
DATE(`TransactionDate`) AS `Day`, 
SUM(IF(PaymentType = "paypal", 1,0)) AS Paypal, 
SUM(IF(PaymentType = "check", 1,0)) AS Checks, 
SUM(IF(PaymentType = "credit card", 1,0)) AS CreditCard, 
COUNT(*) AS Entries
 FROM my_table
 WHERE TransactionDate between '2011-05-05' AND '2012-01-30'
 GROUP BY day
 ORDER BY `day` ASC

Kueri ini berfungsi dengan baik.

Ketika saya mencoba menambahkan pernyataan SUM bersyarat di bawah ini:

 SUM('TotalAmount'(PaymentType = "credit card", 1,0)) AS CreditCardTotal,

Pernyataan IF bersyarat ini gagal.

Saya memiliki kolom yang disebut ' TotalAmount ' dan kolom yang disebut ' Jenis Pembayaran ' Saya ingin membuat SUM dari transaksi kartu kredit setiap hari, SUM dari transaksi cek setiap hari, SUM dari transaksi paypal setiap hari,. Saya telah mencoba membuat subquery tetapi ini mengembalikan nilai untuk seluruh kolom TotalJumlah, tidak dipecah berdasarkan hari.

36 2012-01-04T18:34:12+00:00 2
Pemrograman
mysql
if-statement
sum
Solution / Answer
 aleroot
aleroot
4 Januari 2012 в 6:39
2012-01-04T18:39:04+00:00
Lebih
Sumber
Sunting
#15109068

Cobalah dengan CASE dengan cara ini:

SUM(CASE 
    WHEN PaymentType = "credit card" 
    THEN TotalAmount 
    ELSE 0 
END) AS CreditCardTotal,

Akan memberikan apa yang Anda cari ...

RavatSinh Sisodiya
RavatSinh Sisodiya
Jawaban edit 10 April 2019 в 7:06
81
0
Scott Hunter
Scott Hunter
4 Januari 2012 в 6:40
2012-01-04T18:40:16+00:00
Lebih
Sumber
Sunting
#15109069

Bagaimana dengan ini?

SUM(IF(PaymentType = "credit card", totalamount, 0)) AS CreditCardTotal
42
0
Related communities 1
MySQL & MariaDB Indonesia
MySQL & MariaDB Indonesia
7 724 pengguna
Group belajar, diskusi, dan berbagi tentang DBMS MySQL dan MariaDB. Disclaimer: This group is not in any affiliation nor maintained by Oracle or www.mysql.com.
Buka telegram
Tambahkan pertanyaan
Kategori
Semua
Teknologi
Budaya / Rekreasi
Kehidupan / Seni
Ilmu Pengetahuan
Profesional
Bisnis
Pengguna
Semua
Baru
Populer
1
工藤 芳則
Terdaftar 6 hari yang lalu
2
Ирина Беляева
Terdaftar 1 minggu yang lalu
3
Darya Arsenyeva
Terdaftar 1 minggu yang lalu
4
anyta nuam-nuam (LapuSiK)
Terdaftar 1 minggu yang lalu
5
Shuhratjon Imomkulov
Terdaftar 1 minggu yang lalu
ID
JA
© kzen.dev 2023
Sumber
stackoverflow.com
di bawah lisensi cc by-sa 3.0 dengan atribusi