Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1084 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Bloqué sur des requetes SQL basiques dans Access

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Bloqué sur des requetes SQL basiques dans Access

n°2082429
coolweb
Posté le 14-06-2011 à 20:46:37  profilanswer
 

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!

mood
Publicité
Posté le 14-06-2011 à 20:46:37  profilanswer
 

n°2082432
billgatesa​nonym
Posté le 14-06-2011 à 21:30:14  profilanswer
 

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.

n°2082573
Paulp
~, sweet ~
Posté le 15-06-2011 à 14:44:14  profilanswer
 

1.
on prend comme rang le nombre de grands freres (ou grandes soeurs) plus un.

Code :
  1. SELECT e.num_inscription, e.date_naiss_enfant, COUNT(grand_frere.*) +1 AS rang_enfant
  2. FROM Enfant e
  3. LEFT JOIN Enfant grand_frere ON frere.num_inscription=438 AND grand_frere.date_naiss_enfant < e.data_naiss_enfant
  4. WHERE e.num_inscription=438
  5. GROUP BY e.date_naiss_enfant, e.num_inscription
  6. ORDER BY e.date_naiss_enfant;
 

2.

Code :
  1. SELECT num_inscription, COUNT(*) AS NEnfants FROM Enfant GROUP BY num_inscription HAVING NEnfants  > 3


Message édité par Paulp le 15-06-2011 à 14:44:27
n°2082640
coolweb
Posté le 15-06-2011 à 22:12:05  profilanswer
 

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...


Message édité par coolweb le 15-06-2011 à 22:29:07
n°2083704
coolweb
Posté le 21-06-2011 à 20:55:55  profilanswer
 

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!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Bloqué sur des requetes SQL basiques dans Access

 

Sujets relatifs
Optimiser le temps de réponse de mes requetes HQLproblème (opérateur manquant) dans Requete SQL sous Excel VBA
Help requête SQL[ACCESS]Affichage du résultat d'une requête sql en plusieurs colonnes
[SQL] Changer la casse d'un titre?Problème de requete SQL
SQLSQL, select, count et optimisation
Aide HTML/PHP/ SQL ( Urgent pour BAC:! ) 
Plus de sujets relatifs à : Bloqué sur des requetes SQL basiques dans Access


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR