Bạn phải sử dụng 'có' -
SELECT dept.id, (invoices.col1 + invoices.col2 + invoices.col3) as sumTotal
FROM dept
INNER JOIN invoices ON invoices.id_dept = dept.id
HAVING sumTotal > 10000
Tôi không chắc chắn cho dù bạn có thể sử dụng lĩnh vực aliased của bạn hoặc cho dù bạn có để viết 'có (invoice.col1 + invoice.col2 + invoice.col3)> 10000.
Câu lệnh' where 'hoạt động cùng với' select ': nó lọc hồ sơ ban đầu được trả về. 'Có' sau đó các bộ lọc trả về tập dữ liệu, thông thường vì điều kiện 'có' không thể được biết tại thời điểm 'chọn'.
Để trích dẫn một tài liệu, 'Mệnh đề HAVING đã được thêm vào SQL vì không thể sử dụng từ khóa WHERE với hàm tổng hợp'. Một nơi khác được viết 'Mệnh đề SQL HAVING được sử dụng kết hợp với mệnh đề SQL GROUP BY.Nó có thể được sử dụng trong câu lệnh SQL SELECT để lọc các bản ghi mà một SQL GROUP BY trả về. '
Nguồn
2013-03-25 15:44:56
Một lĩnh vực tính toán tên dường như không làm việc (trong MS-SQL) với một trong hai CÓ hoặc ĐÂU http://sqlfiddle.com/#!6/92119/1 ... nhưng việc thêm phép tính một lần nữa trong mệnh đề WHERE dường như hoạt động! (http://sqlfiddle.com/#!6/92119/3) –
@MrFuzzyButton MySQL và MS-SQL hoạt động theo cách khác. Câu trả lời của tôi và câu hỏi là hoàn toàn về MySQL như tôi đã chỉ ra ở trên. –
Có, nhưng tôi nghĩ rằng nó đáng chú ý, tuy nhiên :) –