Hướng dẫn mysql sum( case when multiple conditions) - mysql sum (trường hợp khi nhiều điều kiện)

Tôi đang cố gắng xây dựng một truy vấn thực hiện một tổng nếu một tham số nhất định được đặt. Ví dụ:

SELECT SUM[IF[,field,field]] AS total_value

... đang hoạt động chính xác.

Nhưng tôi có nhiều hơn một điều kiện trong if [], như:more than one condition in the IF[], like:

SELECT SUM[IF[ ,field,field]] AS total_value

.. trong đó không hoạt động, bạn có thể biết những gì nên là truy vấn phù hợp cho việc này.

Cập nhật

Xin lỗi vì các truy vấn sai, các truy vấn đúng là

Truy vấn hiện tại của tôi trông giống như thế này: Chọn Sum [if [điều kiện1, trường, trường]] là Total_Value đang hoạt động chính xác.

Nhưng tôi có nhiều hơn một điều kiện trong if [], như chọn tổng [if [điều kiện1 điều kiện2, trường, trường]] là Total_Value không hoạt động, bạn có thể biết những gì nên là truy vấn phù hợp cho việc này.

Tôi đang cố gắng dịch truy vấn trong câu hỏi này sang MySQL, khi chúng tôi chuyển dữ liệu từ DB truy cập sang một cấu trúc mới.

Tôi đã đưa ra những điều sau đây, vì có nhiều điều kiện [giá trị của '' hoặc 'không cạnh tranh'] và tôi đã gặp lỗi sau [kể từ khi được giải quyết, xem EDIT 2 bên dưới].

1064 - Bạn có lỗi trong cú pháp SQL của mình; Kiểm tra hướng dẫn tương ứng với phiên bản máy chủ Mariadb của bạn cho cú pháp phù hợp để sử dụng gần 'sau đó là 0 đầu 1] là' tổng vũ khí ', sum [case khi [tourney_info.c_we' ở dòng 7

Truy vấn như sau:

SELECT school_num, 'Total Form and Sparring', 'Total Weapons', 'Total Combat', 'Total Form and Sparring' + 'Total Weapons' + 'Total Combat' AS 'Total Entries'
FROM
[  
  SELECT
  tourney_info.school_num,
  SUM[  case when tourney_info.t_forms IN ['', 'Did Not Compete'] AND tourney_info.spar IN ['','Did Not Compete']
        then 0
        else 1
        end] AS 'Total Form and Sparring',
  SUM[ case when tourney_info.t_weps IN ['','Did Not Compete'] then 0 else 1 end] AS 'Total Weapons',
  SUM[ case when tourney_info.c_weps IN ['', 'Did Not Compete'] then 0 else 1 end] AS 'Total Combat'
FROM
  tourney_info
WHERE school_num = '546' AND tourn_date > '2018-04-20' AND tourn_date < '2018-04-22'

] AS derived

Khi lỗi được giải quyết theo bình luận, truy vấn đưa ra kết quả sau:

school_num  Total Form and Sparring     Total Weapons   Total Combat    Total Entries   
    546     Total Form and Sparring     Total Weapons   Total Combat    0

Chỉnh sửa #2, sau khi nhìn lại các thông số kỹ thuật của trường, vì một truy vấn kiểm tra cho tôi thấy rằng ai đó đặt trường là 10 ký tự và 'không cạnh tranh' của tôi đã bị cắt ngắn khi nhập:

Nếu tôi đưa truy vấn nội thất ra như sau, tôi sẽ nhận được tổng số cá nhân, tuy nhiên tôi không nhận được tổng số tích lũy:

  SELECT
  tourney_info.school_num, 'Total Form and Sparring' + 'Total Weapons' + 'Total Combat' AS 'Total Entries',
  SUM[  case when tourney_info.t_forms IN ['', 'Did Not Co'] AND tourney_info.spar IN ['','Did Not Co']
        then 0
        else 1
        end] AS 'Total Form and Sparring',
  SUM[ case when tourney_info.t_weps IN ['','Did Not Co'] then 0 else 1 end] AS 'Total Weapons',
  SUM[ case when tourney_info.c_weps IN ['','Did Not Co'] then 0 else 1 end] AS 'Total Combat'
FROM
  tourney_info
WHERE tourney_info.school_num = '546' AND tourney_info.tourn_date > '2018-04-20' AND tourney_info.tourn_date < '2018-04-22'

Kết quả đặt:

 school_num     Total Entries   Total Form and Sparring     Total Weapons   Total Combat    
546               0                   36                      17                    25

Xin chào các bạn,

Bài viết này sẽ cung cấp cho bạn ví dụ về truy vấn tổng mysql với điều kiện nếu điều kiện. Tôi đã giải thích đơn giản về tổng mysql với nhiều điều kiện. Hướng dẫn này sẽ cung cấp cho bạn ví dụ đơn giản về tổng mysql với câu lệnh IF điều kiện.

Trong bài đăng này, bạn sẽ học sử dụng Sum với điều kiện trong MySQL. Tôi sẽ hiển thị bạn sử dụng tổng với điều kiện nếu truy vấn SQL.

Ở đây tôi sẽ cho bạn nhiều ví dụ cho tổng mysql với điều kiện nếu điều kiện.

Bảng: Users_payment

Vì vậy, chúng ta hãy xem giải pháp gầm gừ:

Giải pháp truy vấn SQL:

SELECT

SUM[CASE

WHEN type = "CASH"

THEN amount

ELSE 0

END] AS total_cash,

SUM[CASE

WHEN type = "CREDIT_CARD"

THEN amount

ELSE 0

END] AS total_credit_card

FROM `users_payment`

Output:

Nó sẽ giúp bạn...

#MySQLMySQL

Thích bài viết này? Theo dõi tôi trên Twitter và Facebook. Bạn cũng có thể đăng ký nguồn cấp dữ liệu RSS.

Tôi có thể sử dụng SUM trong tuyên bố trường hợp không?

Hãy nghiêm túc ngay bây giờ!Một trường hợp khi biểu thức thường được sử dụng với hàm tổng [] trong các báo cáo phức tạp hơn, có thể khá khó khăn cho người mới bắt đầu.Mặc dù có lẽ bạn đã quen sử dụng hàm SUM [] để tổng hợp các giá trị, nhưng nó cũng có thể được sử dụng để đếm.Even though you're probably used to using the SUM[] function for summing values, it can also be used for counting.

Làm thế nào có thể sử dụng chức năng tổng trong câu lệnh CASE trong SQL Server?

Cách sử dụng SQL Server T-SQL Function Sum: 5 trường hợp sử dụng..
Tất cả là một giá trị mặc định, không bắt buộc phải vượt qua.....
Bỉ chỉ định rằng nó phải trả lại tổng của các giá trị duy nhất, bỏ qua các giá trị trùng lặp ..
Biểu thức là loại dữ liệu số chính xác hoặc gần đúng, ngoại trừ kiểu dữ liệu bit ..

Làm thế nào để bạn tổng hợp trong mysql?

Hàm MySQL Sum [] được sử dụng để trả về tổng giá trị tổng của biểu thức.Nó trả về NULL nếu bộ kết quả không có bất kỳ hàng nào.Đây là một trong những loại chức năng tổng hợp trong MySQL ...
Chọn tổng [tổng hợp_expression].
Từ bàn ..
[Nơi điều kiện] ;.

Bài Viết Liên Quan

Chủ Đề