SELECT
sum(TotalHoursM)
+ (TotalHoursT)
+ (TotalHoursW)
+ (TotalHoursTH)
+ (TotalHoursF)
AS TOTAL
FROM LeaveRequest
Trả lời
Nếu cột có giá trị 0, bạn ổn, tôi đoán bạn có vấn đề với giá trị Null, trong trường hợp đó bạn cần phải sử dụng IsNull(Column, 0)
để đảm bảo giá trị này luôn bằng 0.
Bạn có thể sử dụng ISNULL
:
ISNULL(field, VALUEINCASEOFNULL)
SELECT sum(isnull(TotalHoursM,0))
+ isnull(TotalHoursT,0)
+ isnull(TotalHoursW,0)
+ isnull(TotalHoursTH,0)
+ isnull(TotalHoursF,0)
AS TOTAL FROM LeaveRequest
thiếu một ")" trước "AS" –
trông giống như bạn muốn tổng hợp tất cả các cột (Tôi không chắc chắn nơi "tổng 3 cột" xuất phát từ), không chỉ TotalHoursM, vì vậy hãy thử này:
SELECT
SUM( ISNULL(TotalHoursM ,0)
+ ISNULL(TotalHoursT ,0)
+ ISNULL(TotalHoursW ,0)
+ ISNULL(TotalHoursTH ,0)
+ ISNULL(TotalHoursF ,0)
) AS TOTAL
FROM LeaveRequest
cảm ơn bạn đã bỏ phiếu xuống gần 8 năm sau khi trả lời câu trả lời này! ha ha, đây là câu trả lời chính xác được đưa ra bởi những người khác về câu hỏi này rất. Tôi trả lời trước họ, nhưng họ có rất nhiều phiếu bầu. –
Các câu trả lời trước đây sử dụng chức năng ISNULL
là chính xác. Chức năng COALESCE
cũng sẽ hoạt động. Trong ví dụ đã cho:
SELECT sum(COALESCE(TotalHoursM,0))
+ COALESCE(TotalHoursT,0)
+ COALESCE(TotalHoursW,0)
+ COALESCE(TotalHoursTH,0)
+ COALESCE(TotalHoursF,0) AS TOTAL FROM LeaveRequest
Điều này giống hệt với giải pháp ISNULL
với sự khác biệt duy nhất là tên của hàm. Một số bất đồng trong thế giới SQL về cái nào là 'tốt hơn'. Nhưng cả hai đều làm việc. Tôi gửi phương án thay thế này vì hai lý do. Các COALESCE
là ANSI tiêu chuẩn và ISNULL
là không. Nhưng, quan trọng hơn là một thực tế là COALESCE
là linh hoạt hơn. ISNULL
sẽ chỉ hoạt động với hai tham số. Nếu tham số đầu tiên là NULL thì giá trị của tham số thứ hai được trả về, ngược lại giá trị của tham số đầu tiên được trả về. COALESCE sẽ mất 2 đến 'n' (tôi không biết giới hạn của thông số 'n') và trả lại giá trị của thông số đầu tiên không phải là NULL
. Khi chỉ có hai tham số thì hiệu ứng giống như ISNULL
.
Ngoài ra, Oracle SQL không có ISNULL. Mặc dù, theo kinh nghiệm của tôi, bạn có thể nhận được kết quả tốt hơn với NVL(): http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions105.htm – Darren
Chỉ cần tôi đang tìm kiếm - postgres không có ether isnull. –
Isnull không hoạt động như mong đợi trong MySQL. Coalesce đã làm công việc. Cảm ơn. – George
tôi sẽ cố gắng này:
select sum (case when TotalHousM is null then 0 else TotalHousM end)
+ (case when TotalHousT is null then 0 else TotalHousT end)
+ (case when TotalHousW is null then 0 else TotalHousW end)
+ (case when TotalHousTH is null then 0 else TotalHousTH end)
+ (case when TotalHousF is null then 0 else TotalHousF end)
as Total
From LeaveRequest
Just for reference, the equivalent statement for MySQL is: IFNull(Column,0).
Tuyên bố này đánh giá như giá trị cột nếu không null, nếu không nó được đánh giá là 0.
Nếu bạn muốn tránh các IsNull sử dụng giá trị null (Cột, 1)
- 1. tab chéo PostgreSQL với ba cột có giá trị được tổng hợp từ một cột
- 2. Truy vấn SQL để thêm giá trị của hai cột có chứa giá trị null?
- 3. SQL- Thêm giá trị vào một cột
- 4. bảng Alter SQL - cho phép giá trị cột NULL
- 5. Dữ liệu tổng hợp trong một cột dựa trên các giá trị trong một cột khác
- 6. Truy vấn SQL có nhiều giá trị trong một cột
- 7. Cập nhật cột với Null giá trị
- 8. Giá trị thiết lập SQL của một cột bằng với giá trị của một cột khác trong cùng một bảng
- 9. Chọn giá trị cột nếu không null khác sử dụng giá trị cột khác
- 10. SQL: Count() dựa trên giá trị cột
- 11. Thêm cột vào bảng có giá trị mặc định bằng giá trị của cột hiện tại
- 12. Tổng bằng giá trị cột riêng biệt trong R
- 13. SQL cột Lựa chọn như giá trị
- 14. Chọn một cột giả với giá trị giả trong SQL?
- 15. SQL - Chèn nhiều giá trị hàng vào một cột đơn
- 16. SQL Chọn nhiều cột dựa trên giá trị lớn nhất trong một cột
- 17. Nhóm Theo một cột không có giá trị
- 18. Entity Framework CTP 4. "Không thể chèn giá trị NULL vào cột" - Mặc dù không có giá trị NULL
- 19. Tìm tên cột có giá trị không phải là null cuối cùng trong một hàng
- 20. Gán giá trị Null cho cột nguyên trong DataTable
- 21. SQL Server làm thế nào để thiết lập một giá trị mặc định khi cột là null
- 22. awk - nếu cột = null
- 23. Bố cục 3 Cột - Không có Cột
- 24. SQL: Làm thế nào tôi có thể cập nhật giá trị trên một cột chỉ khi giá trị đó là null?
- 25. SQL tổng giá trị cột, độc đáo cho mỗi người dùng mỗi ngày
- 26. SQL: Ràng buộc duy nhất khi cột là một giá trị nhất định
- 27. T: SQL: chọn giá trị từ hàng như cột
- 28. Sum hàng dựa trên giá trị cột
- 29. số cột kết hợp có cùng một giá trị
- 30. 3 cột, giữa một cột có chiều rộng linh hoạt
Cảm ơn Mitchel, tôi gặp sự cố với giá trị null. Cảm ơn các đầu vào. – Yves
Yonita là câu trả lời của Michael trả lời câu hỏi của bạn đánh dấu nó như được trả lời bằng cách sử dụng dấu kiểm. – ahsteele
Cảm ơn Ahsteele. – Yves