Requete sql
mb12fr
Messages postés
74
Statut
Membre
-
mb12fr Messages postés 74 Statut Membre -
mb12fr Messages postés 74 Statut Membre -
Bonjour,
j'ai la table suivante
champs qui,action,quoi
--------------------------
toto, boire, eau
toto, boire, vin
toto, manger, pain
toto, manger ,fromage
toto, dormir ,sieste
titi, boire, vin
titi, manger, pain
titi, manger, fromage
et je voudrai un résultat comme suit:
nom boire manger dormir
----------------------------
titi 1 2 0
toto 2 2 1
C'est à dire qui compte sur une même ligne les occurences d'une même valeur.
Je voudrais une requete du genre ;
select qui, count(action=='manger'),count(action=='boire'),count(action=='dormirr');
mais mes connaissances en sql sont un peu limitées.
Auriez vous une idée ?
Merci
j'ai la table suivante
champs qui,action,quoi
--------------------------
toto, boire, eau
toto, boire, vin
toto, manger, pain
toto, manger ,fromage
toto, dormir ,sieste
titi, boire, vin
titi, manger, pain
titi, manger, fromage
et je voudrai un résultat comme suit:
nom boire manger dormir
----------------------------
titi 1 2 0
toto 2 2 1
C'est à dire qui compte sur une même ligne les occurences d'une même valeur.
Je voudrais une requete du genre ;
select qui, count(action=='manger'),count(action=='boire'),count(action=='dormirr');
mais mes connaissances en sql sont un peu limitées.
Auriez vous une idée ?
Merci
A voir également:
- Requete sql
- Logiciel sql - Télécharger - Bases de données
- Requête sql pour afficher uniquement les fleurs dont le prix est strictement inférieur à 10 euros - Forum calculatrices
- Cherche des haricot vendez les moi ✓ - Forum DS
- Sql (+) - Forum Programmation
- Sql lister les tables ✓ - Forum Programmation
3 réponses
Select count(action), nom from <nom_table>
group by action;
Ca doit être dans ce style, mais G pas trop compris ton truc.
group by action;
Ca doit être dans ce style, mais G pas trop compris ton truc.
Tu peux essayer
"select * from table
where action = 'manger';"
et compter le nombre d'enregistrements que ca te donne
et faire la meme chose pour les autre valeures que tu veux calculer.
bien sur l'idéal serait de le faire en une seule requete...
Floverdevel
No 'one' can be told what the matrix is.
You'll have to explore it yourself.
"select * from table
where action = 'manger';"
et compter le nombre d'enregistrements que ca te donne
et faire la meme chose pour les autre valeures que tu veux calculer.
bien sur l'idéal serait de le faire en une seule requete...
Floverdevel
No 'one' can be told what the matrix is.
You'll have to explore it yourself.
En SQL brut, ce n'est pas possible.
En fait, il faut que tu créé un recordset ou une table dont le nombre de colonnes est dynamique (il dépend du nombre d'action différentes existantes).
Le SQL de base ne sait pas faire ça.
Je te conseille plutôt de développer un petit programme qui va calculer ce résultat.
A la limite, ça serait faisable en TSQL (sql procédural (sybase/microsoft sql server)), mais c'est vraiment un affreux bricolage.
En fait, il faut que tu créé un recordset ou une table dont le nombre de colonnes est dynamique (il dépend du nombre d'action différentes existantes).
Le SQL de base ne sait pas faire ça.
Je te conseille plutôt de développer un petit programme qui va calculer ce résultat.
A la limite, ça serait faisable en TSQL (sql procédural (sybase/microsoft sql server)), mais c'est vraiment un affreux bricolage.
Je continue de chercher...
Merci de ta réposne
A+