2012-03-10 38 views
7

Tôi đang cố gắng để hiển thị giá trị Somes trong kết quả cơ sở dữ liệu của tôi, tôi đang sử dụng mã này, nhưng tôi không thể thành công:Nhiều IF báo cáo về MYSQL

SELECT item_code, IF(category_code = 'HERR1', 'NO', 1) OR (category_code = 'COLN5', 'NO', 2) AS category_code, item_name, item_quantity FROM qa_items 

EDIT: I Want để hiển thị ví dụ :

If category_code = 'HERR1' 
Display = 1 
else if category_code = 'COLN5' 
Display = 2 
End If 

Nếu ai có bất kỳ ý tưởng, rất nhiều sẽ đánh giá cao nó

+0

Vâng, một tuyên bố chọn không dẫn đến bất kỳ sự thay đổi trong dữ liệu cơ bản. Thay vào đó, bạn cần sử dụng câu lệnh UPDATE. –

+0

Xin lỗi tôi có nghĩa là kết quả hiển thị –

+0

Lỗi nào bạn nhận được? Bạn có thể đăng đầu ra dự kiến ​​và thực tế không? –

Trả lời

23

Tôi muốn sử dụng CASE:

SELECT item_code, 
CASE category_code 
WHEN 'HERR1' THEN 1 
WHEN 'COLN5' THEN 2 
ELSE 'NO' 
END as category_code, item_name, item_quantity 
FROM qa_items 

Nhưng IF cũng sẽ làm việc: IF(category_code='HERR1',1, IF(category_code='COLN5',2,'NO'))

4

Bạn cần phải tổ nếu phát biểu

SELECT item_code, IF(category_code = 'HERR1', 'NO', IF(category_code = 'COLN5', 1, 2)) AS category_code, item_name, item_quantity FROM qa_items 

Sau đó, người đầu tiên nếu sẽ thất bại và lồng nhau nếu sẽ đánh giá

4

Đây có phải là những gì bạn đang theo đuổi?

SELECT 
    item_code, 
    CASE category_code 
    WHEN 'HERR1' THEN 1 
    WHEN 'COLN5' THEN 2 
    ELSE 'NO' 
    END AS category_code, 
    item_name, 
    item_quantity 
FROM qa_items 
1

Hãy thử như sau

SELECT item_code, CASE category_code WHEN 'HERR1' THEN 1 WHEN 'COLN5' THEN 0 ELSE 'NONE' END AS category_code, item_name, item_quantity FROM qa_items 
0

Trong bảng 3 cột của tôi, một là package_price, employee_percentage, reference_customer_id.

Bây giờ tôi muốn nếu reference_customer_id> 0 thì tỷ lệ người lao động như referenced_commission và nếu reference_customer_id = 0 hoa hồng sau đó trực tiếp. Tôi cố gắng bên dưới cách:

CHỌN if (reference_customer_id = 0, sum (((package_price employee_percentage)/100)), 0) là direct_commission, if (reference_customer_id> 0, sum (((package_price employee_percentage)/100)), 0) là reference_commission

Các vấn đề liên quan