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.