Disons que j'ai deux tables existantes, « les chiens » et « chats »:SQL Select solution de syntaxe
dog_name | owner ---------+------ Sparky | Bob Rover | Bob Snoopy | Chuck Odie | Jon cat_name | owner ---------+------ Garfield | Jon Muffy | Sam Stupid | Bob
Comment puis-je écrire une requête avec cette sortie?
owner | num_dogs | num_cats ------+----------+--------- Bob | 2 | 1 Chuck | 1 | 0 Sam | 0 | 1 Jon | 1 | 1
La réponse que j'ai est la prochaine requête
select owner, sum(num_dogs), sum(num_cats) from
(select owner, 1 as num_dogs, 0 as num_cats from dogs
union
select owner, 0 as num_dogs, 1 as num_cats from cats)
group by owner
mais le problème est que SQL ne prend pas en charge "select * from (sélectionner ...)" Type de requête
À la place, il doit y avoir un nom de table après "from".
Malheureusement je ne peux me permettre d'avoir une table temporaire ou une table créée avec la clause "select into". J'ai besoin d'une solution de contournement pour la solution proposée où une clause select imbriquée est formée de cette manière.
Quelle est votre opinion?
Vive
Quel type de moteur de base de données est-ce? –
il me semble que vos tables "chiens" et "chats" supplient d'être combinées dans une table "animaux de compagnie" avec les colonnes (nom, propriétaire, type). alors vous devez sélectionner le propriétaire, le type, le nombre (nom) du groupe d'animaux de compagnie par propriétaire, le type. Je pense. N'a pas testé la requête. – rmeador