Bloqué sur des requetes SQL basiques dans Access - SQL/NoSQL - Programmation
Marsh Posté le 14-06-2011 à 21:30:14
Le Group By s'utilise avec count(*) ou max(), ou une autre fonction concernant un groupe.
Votre première requête ne va donc pas, car vous avez un Group By, mais pas de count(*), ni d'autres fonctions de groupe.
Votre seconde requête ne va pas car vous avez un Count(*) mais pas de Group By.
Peut-être que vous devriez prendre quelques minutes pour lire un manuel ou un tutoriel sur le SQL, au lieu décrire des requêtes en alignant des mots clés au hasard.
Marsh Posté le 15-06-2011 à 14:44:14
1.
on prend comme rang le nombre de grands freres (ou grandes soeurs) plus un.
Code :
|
2.
Code :
|
Marsh Posté le 15-06-2011 à 22:12:05
merci Paulp, elle ne fonctionne pas telle quelle mais je vais d'abord essayer de la comprendre
pour la deuxième je l'ai modifiée comme ceci car il ne me reconnaissait pas le Nenfants dans le HAVING:
SELECT num_inscription, COUNT (*) AS nenfants
FROM Enfant
GROUP BY num_inscription
HAVING COUNT (*) > 3;
billgatesanonym, je sais que je manque de notions mais malheureusement je n'ai pas assez de temps pour m'y mettre à fond, les langages c'est tout nouveau pour moi, je n'ai encore strictement aucun automatisme et les messages d'erreur d'Access ne sont pas très instructifs...
Marsh Posté le 21-06-2011 à 20:55:55
Hello,
Voici ce que j'ai reussi à faire avec l'aide d'internet pour afficher le rang selon les dates de naissance:
SELECT (SELECT Count(date_naiss_enfant)+1 AS Expr1
FROM
(
SELECT DISTINCT date_naiss_enfant
FROM enfant AS T2
)
WHERE T2.date_naiss_enfant>enfant.date_naiss_enfant
) AS rang, Enfant.Date_naiss_enfant
FROM Enfant;
Cependant je ne sais pas comment lui dire de ne calculé et de n'afficher les rang que pour le membre dont num_inscription=438, une idée?
merci!
Marsh Posté le 14-06-2011 à 20:46:37
Hello,
Je débute avec les requetes SQL sur Access et j'ai quelques problèmes:
J'ai une table enfant avec pour chaque ligne leur date de naissance (date_naiss_enfant), un identifiant unique (num_enfant) et l'identifant de leurs parents (num_inscription)
1. Donnez pour le membre N°438 la date de naisance de ses enfants triés par ordre croissance avec une colonne indiquant le rang de l'enfant (1 étant le plus jeune)
J'ai fait ça:
SELECT num_inscription, date_naiss_enfant
FROM Enfant
WHERE num_inscription=438
GROUP BY date_naiss_enfant, num_inscription
ORDER BY date_naiss_enfant;
J'ai bien la liste des enfants et leur date de naissance mais comment faire apparaitre une colonne rang numérotant les enfants à partir de leur date de naissance de manière croissante?
2. Donnez le n° des membres qui ont déclaré plus de trois enfants.
Là je ne sais pas faire, j'avais fait ça...
SELECT num_inscription, count(*)
FROM ENFANT
WHERE ENFANT.num_inscription >2
;
voilà si vous pouviez m'aider en corrigeant mes requetes
merci!