J'ai une base de données SQLite avec le tableau suivant:Syntaxe Sélectionnez dans SQL Query
CREATE TABLE games (name text, date text, winloss int, gameid int, pointsfor int, pointsagainst int);
Deux dossiers d'échantillons ressembleraient.
Anna A, 7/12/13, 0, 345, 56, 28
Barley B, 7/12/13, 1, 345, 28, 56
(équipe de l'orge perdue, et le won de Anna Chaque le jeu a plusieurs joueurs sur chaque équipe.) Je veux créer une requête qui retournera tous les jeux qui ont eu x joueurs sur une équipe et y joueurs sur un autre, plus le résultat cumulatif de ces jeux.
Je sais comment faire cela en utilisant perl et un fichier csv, et je crois que je pourrais utiliser la même méthode avec l'interface dbi. Je veux apprendre comment créer ce rapport en utilisant seulement des requêtes SQL, cependant. Je suis un nouveau venu dans SQL, et je soupçonne que la solution peut impliquer de faire pivoter la table en utilisant CASE WHEN ou JOIN pour créer une nouvelle table; mais je ne vois pas comment le faire.
Cette requête renverra tous les jeux où les joueurs étaient sur la même équipe et a gagné (ou perdu, selon la valeur de winloss):
select gameid,date from games
where name in ('Anna A', 'Barley B') and winloss=1
group by gameid
having count(*)>1;
Mais je ne sais pas comment généraliser cette interroger pour retourner les jeux avec les joueurs de l'autre équipe.
* tous les jeux qui ont x joueurs sur une équipe et y joueurs sur un autre * comment prévoyez-vous sur la définition de «x» et «y» –
Par requête utilisateur. Je veux savoir combien de parties où le (s) joueur (x) a (ont) gagné (s) contre le (s) joueur (s) y. Donc, tous 'Anna A' et 'Barley B' contre 'Charley C' et 'Danielle D' par exemple. – user2619203
Quelque chose manque, d'où vient le nombre de joueurs? –