Est-il possible de joindre les résultats de 2 sql ? SELECT
en une seule déclaration ? Je dispose d'une base de données de tâches où chaque enregistrement est une tâche distincte, avec des échéances (et un numéro d'enregistrement). PALT
qui est juste un INT
de jours du début à la fin. Age
est également un INT
nombre de jours).
Je veux avoir une table qui a chaque personne dans la table, le nombre de tâches qu'ils ont, et le nombre de LATE
les tâches qu'ils ont (le cas échéant).
Je peux facilement obtenir ces données dans des tableaux séparés, comme ceci :
SELECT ks, COUNT(*) AS '# Tasks' FROM Table GROUP BY ks
renvoyant des données comme :
ks # Tasks
person1 7
person2 3
et ensuite je l'ai fait :
SELECT ks, COUNT(*) AS '# Late' FROM Table WHERE Age > Palt GROUP BY ks
qui revient :
ks # Late
person1 1
person2 1
Et je veux joindre les résultats de ces deux select
déclarations (par le KS
)
J'essaie d'éviter d'utiliser une table temporaire, mais si c'est la seule façon pratique de procéder, j'aimerais en savoir plus sur l'utilisation des tables temporaires de cette manière.
J'ai aussi essayé de faire une sorte de count()
de lignes qui satisfont à une condition, mais je n'ai pas non plus trouvé comment le faire. Si c'est possible, cela fonctionnerait aussi.
Addendum : Désolé, je veux que mes résultats aient des colonnes pour KS
, Tasks
y Late
KS # Tasks # Late
person1 7 1
person2 3 1
person3 2 0 (or null)
En outre, je veux qu'une personne se présente même si elle n'a pas de tâches à accomplir en retard.
SUM(CASE WHEN Age > Palt THEN 1 ELSE 0 END) Late
fonctionne bien, merci pour cette réponse !
Deux instructions select fonctionnent également, en utilisant un LEFT JOIN
pour les joindre fonctionne également, et je comprends maintenant comment joindre de multiples select
de la manière suivante