Чи можна об'єднати результати 2 sql SELECT
висловлювань в одному операторі? У мене є база даних завдань, де кожен запис є окремим завданням, із строками (і a PALT
, що становить лише INT
кілька днів від початку до граничного терміну. Age
Також INT
кількість днів.)
Я хочу мати таблицю з кожною людиною в таблиці, кількість завдань у них та кількість LATE
завдань, які у них є (якщо такі є)
Я можу легко отримати ці дані в окремих таблицях, як-от так:
SELECT ks, COUNT(*) AS '# Tasks' FROM Table GROUP BY ks
повернення даних, таких як:
ks # Tasks
person1 7
person2 3
і тоді я маю:
SELECT ks, COUNT(*) AS '# Late' FROM Table WHERE Age > Palt GROUP BY ks
який повертає:
ks # Late
person1 1
person2 1
І я хочу долучитися до результатів цих двох select
тверджень (від KS
)
Я намагаюся уникати використання тимчасової таблиці, але якщо це єдиний практичний спосіб зробити це, я хотів би дізнатися більше про використання тимчасових таблиць таким чином.
Я також спробував зробити якісь count()
ряди, які задовольняють умовному, але я також не міг зрозуміти, як це зробити. Якщо це можливо, це теж спрацювало б.
Додаток: До жаль, я хочу , щоб мої результати , щоб мати стовпці KS
, Tasks
іLate
KS # Tasks # Late
person1 7 1
person2 3 1
person3 2 0 (or null)
Крім того, я хочу, щоб людина з'явилася, навіть якщо у них немає пізніх завдань.
SUM(CASE WHEN Age > Palt THEN 1 ELSE 0 END) Late
працює добре, дякую за цю відповідь!
Також працюють два оператори вибору, використовуючи також a, LEFT JOIN
щоб приєднатися до них, і я розумію, як таким чином приєднати декілька select
s