Tôi đang cố gắng để có được một số báo cáo được thực hiện cho hồ sơ thời gian của nhân viên.
Chúng tôi có hai bảng đặc biệt cho câu hỏi này. Nhân viên được liệt kê trong Members
bảng và mỗi ngày họ nhập các mục thời gian làm việc họ đã thực hiện và được lưu trữ trong Time_Entry
bảng.
Thiết lập ví dụ với SQL Fiddle: http://sqlfiddle.com/#!3/e3806/7
Kết quả cuối cùng tôi sẽ chọn là một bảng hiển thị TẤT CẢ các Members
danh sách trong cột và sau đó sẽ hiển thị tổng số giờ của chúng cho ngày được truy vấn trong các cột khác.
Vấn đề dường như là nếu không có hàng trong Time_Entry
bảng cho một thành viên cụ thể, thì bây giờ có hàng cho thành viên đó. Tôi đã thử một số loại tham gia khác nhau (Trái, Phải, Bên trong, Bên ngoài, Toàn bộ bên ngoài, v.v.) nhưng dường như không có loại nào mang lại cho tôi thứ tôi muốn, dựa trên ví dụ cuối cùng trong SQL Fiddle):
/*** Desired End Result ***/
Member_ID | COUNTTime_Entry | TIMEENTRYDATE | SUMHOURS_ACTUAL | SUMHOURS_BILL
ADavis | 0 | 11-10-2013 | 0 | 0
BTronton | 0 | 11-10-2013 | 0 | 0
CJones | 0 | 11-10-2013 | 0 | 0
DSmith | 0 | 11-10-2013 | 0 | 0
EGirsch | 1 | 11-10-2013 | 0.92 | 1
FRowden | 0 | 11-10-2013 | 0 | 0
Những gì tôi hiện đang nhận được khi tôi truy vấn cho ngày cụ thể 11-1:
Member_ID | COUNTTime_Entry | TIMEENTRYDATE | SUMHOURS_ACTUAL | SUMHOURS_BILL
EGirsch | 1 | 11-10-2013 | 0.92 | 1
Điều này đúng dựa trên một hàng Thời gian nhập ngày 11-10-2013 cho EGirsch, nhưng tôi cần xem số không cho các thành viên khác để nhận báo cáo và cuối cùng là bảng điều khiển / báo cáo web cho thông tin này.
Đây là câu hỏi đầu tiên của tôi và trong khi tôi tìm kiếm các truy vấn Tham gia, v.v ... Tôi thực sự không chắc chức năng này có thể được gọi là gì, vì vậy tôi hy vọng rằng đây không phải là một bản sao và sẽ giúp những người khác cố gắng tìm giải pháp để vấn đề tương tự.
WHERE
vàAND
. Tôi đã sử dụng các bí danh ban đầu, nhưng sqlfiddle dường như không thích nó vì vậy tôi chỉ đi đến định dạng đầy đủ. Cảm ơn các mẹo SQL khác là tốt. Bạn có đề nghịISNULL
hoặcCOALESCE
làm cho dữ liệu 0 thay vìNULL
? Cảm ơn một lần nữa!