Có thể tham gia kết quả của 2 SELECT
câu lệnh sql trong một câu lệnh không? Tôi có một cơ sở dữ liệu về các nhiệm vụ trong đó mỗi bản ghi là một nhiệm vụ riêng biệt, có thời hạn (và a PALT
, chỉ là một INT
ngày từ khi bắt đầu đến thời hạn. Age
Cũng là một INT
số ngày.)
Tôi muốn có một bảng có mỗi người trong bảng, số lượng nhiệm vụ họ có và số lượng LATE
nhiệm vụ họ có (nếu có.)
Tôi có thể lấy dữ liệu này trong các bảng riêng biệt một cách dễ dàng, như vậy:
SELECT ks, COUNT(*) AS '# Tasks' FROM Table GROUP BY ks
trả về dữ liệu như:
ks # Tasks
person1 7
person2 3
và sau đó tôi có:
SELECT ks, COUNT(*) AS '# Late' FROM Table WHERE Age > Palt GROUP BY ks
Trả về:
ks # Late
person1 1
person2 1
Và tôi muốn tham gia kết quả của hai select
tuyên bố này (bằng cách KS
)
Tôi đang cố gắng tránh sử dụng bảng tạm thời, nhưng nếu đó là cách thực tế duy nhất để làm điều này, tôi muốn biết thêm về cách sử dụng bảng tạm thời theo cách này.
Tôi cũng đã thử làm một số loại count()
hàng thỏa mãn điều kiện, nhưng tôi cũng không thể tìm ra cách để làm điều đó. Nếu có thể, điều đó cũng sẽ làm việc.
Phụ Lục: Xin lỗi, tôi muốn kết quả của tôi để có các cột cho KS
, Tasks
vàLate
KS # Tasks # Late
person1 7 1
person2 3 1
person3 2 0 (or null)
Ngoài ra, tôi muốn một người xuất hiện ngay cả khi họ không có nhiệm vụ muộn.
SUM(CASE WHEN Age > Palt THEN 1 ELSE 0 END) Late
hoạt động tốt, cảm ơn câu trả lời này!
Hai câu lệnh chọn cũng hoạt động, sử dụng a LEFT JOIN
để tham gia chúng cũng hoạt động và bây giờ tôi hiểu cách tham gia nhiều select
s theo cách này