|
|
aide urgente:Requete SQL pour une table de naissance [Résolu] |
|
|
Anonyme
|
Salut les amis Je voudrais votre aide à propos d'une requete que je veux faire. Je dispose d'une table appelée Naissance dont voici quelques champs: -Nom -Prenoms -Sexe ={Masculin, Feminin, Indetermine} -Date de Naissance Declarant ={Pere, mere, autre} -Date de déclaration J'aimerais avoir une requete qui compte le nombre d'enfants de sexe masculin, feminin et indéterminé entre une date de debut et une date de fin . Je veux faire un groupement par Declarant Par emple: Naissance Du Date de Debut au Date de Fin ________________________________________________________ Declarant | Masculin |Feminin| Indeterminé| Total ------------|----------|-------|------------|---------- Pére | 10 | 15 | 0 | 25 ------------|----------|-------|------------|---------- Mére | 5 | 25 | 0 | 30 ------------|----------|-------|------------|----------- Autre | 30 | 15 | 0 | 45 ------------|----------|-------|------------|--------- Total Naissance enregistré: 100 Merci de votre aide
Contribution le : 28/04/2004 16:11
|
|
|
|
|
Re: aide urgente:Requete SQL pour une table de naissance |
|
|
Inscrit: 18/12/2003 13:14
Post(s): 212
|
bonjour et bienvenuePour te faciliter la chose, utilise plutôt l'assistant des requête et incorpore ta condition param1 et param2. Ensuite on pourra immaginer ce code :
HExécuteRequête(Requête1,hRequêteDéfaut,SélectionPériode.DateDébut,SélectionPériode.DateFin)
HLitPremier(Requête1)
nombreDeFemeninPere,NombreDeMasculinPere,NombreIndeterminePere sont des entiers=0
nombreDeFemeninMere,NombreDeMasculinMere,NombreIndetermineMere sont des entiers=0
nombreDeFemeninAutre,NombreDeMasculinAutre,NombreIndetermineAutre sont des entiers=0
TANTQUE PAS HEnDehors(Requête1)
SI Requête1.declarant="pere" ALORS
SELON Requête1.sexe
CAS "Feminin" : nombreDeFemeninPere+=1
CAS "Masculin" : NombreDeMasculinPere+=1 CAS "Indetermine" :NombreIndeterminePere+=1
FIN
SINON
SI Requête1.declarant="mere" ALORS
SELON Requête1.sexe
CAS "Feminin" : nombreDeFemeninMere+=1
CAS "Masculin" : NombreDeMasculinMere+=1
CAS "Indetermine" : NombreIndetermineMere+=1
FIN
SINON
SI Requête1.declarant="Autre" ALORS
SELON Requête1.sexe
CAS "Feminin" : nombreDeFemeninAutre+=1
CAS "Masculin" : NombreDeMasculinAutre+=1
CAS "Indetermine" : NombreIndetermineAutre+=1
FIN
FIN
FIN
FIN
HLitSuivant(Requête1)
FIN
TableAjouteLigne(Table1,"Masculin",NombreDeMasculinPere,"Pere")
TableAjouteLigne(Table1,"FEMININ",nombreDeFemeninPere,"Pere")
TableAjouteLigne(Table1,"INDETERMINE",NombreIndeterminePere,"Pere")
TableAjouteLigne(Table1,"MAsculin",NombreDeMasculinMere,"MERE")
TableAjouteLigne(Table1,"Feminin",nombreDeFemeninMere,"MERE")
TableAjouteLigne(Table1,"Indeterminé",NombreIndetermineMere,"MERE")
TableAjouteLigne(Table1,"MAsculin",NombreDeMasculinAutre,"Autre")
TableAjouteLigne(Table1,"FEMININ",nombreDeFemeninAutre,"Autre")
TableAjouteLigne(Table1,"Indeterminé",NombreIndetermineAutre,"autre")
Avec les variables que tu as tu peux élaborer ton tableau comme tu veux.
Bonne Chance.
Contribution le : 28/04/2004 19:28
|
|
|
|
|
Re: aide urgente:Requete SQL pour une table de naissance |
|
|
Anonyme
|
Salut Bassy... Ce qui me rend un peu confus c'est la Requête1 .Est ce qu'il faudrait faire : Select declarant, count(Sexe ) As Nombre from Naissance Where naissance.dateNaissance IN(param1, param2) Group By declarant... Si tu peux m'aider avec la Requête 1 ce sera bien appréciée
Contribution le : 28/04/2004 20:49
|
|
|
|
|
Re: aide urgente:Requete SQL pour une table de naissance |
|
|
Inscrit: 18/12/2003 13:14
Post(s): 212
|
Rebonjour Windev dispose d'un assistant adapté aux requête, pourquoi ne pas l'utiliser, Utilise le et tu gagneras du temps. Tu obtiendras lorsque l'assistant termine, une requête que j'ai appelé ici requête1.
Contribution le : 28/04/2004 21:38
|
|
|
|
|
Re: aide urgente:Requete SQL pour une table de naissance |
|
|
Anonyme
|
Salut Bassy En observant le code que tu m'as remis, ca ne marche pas et j'ai autant de ligne dans la table affichee d'une part alors si tu regardes mon exemple,on a 3 lignes et 4 colonnes Une autre chose c'est le calcul du "Total" sur chaque ligne egalement. Mon intention c'est de creer une fenetre dans laquelle, il y a deux champs de saisie:DateDebut et DateFin. Une fois les date saisie ,j'aimerais executer un "Bouton " qui execute la requete pour m'afficher mes resultats sur une table que je cree. Est il possible de m'expliquer pas à pas ce qu'il faut faire.... Merci
Contribution le : 05/05/2004 18:29
|
|
|
|
|
Re: aide urgente:Requete SQL pour une table de naissance |
|
|
Inscrit: 18/12/2003 13:14
Post(s): 212
|
bonjourAlors, pour ta fenêtre : > 2 champs de saisie : DateDébut ET DateFin > Une table Mémoire : 5 colonnes (Declarant ,Masculin>, Feminin, Indetermine, Total) > Une requête Dans le code du bouton on peut écrire :
MaRequête est une Source de Données
Req est une chaîne="SELECT Naissance.declarant AS declarant, Naissance.date_declaration AS date_declaration, Naissance.sexe AS sexe FROM Naissance WHERE date_declaration BETWEEN ' "+DateDébut+"' AND '"+DateFin+" '"
HExécuteRequêteSQL(MaRequête,hRequêteDéfaut,Req)
HLitPremier(MaRequête)
nombreDeFemininPere,NombreDeMasculinPere,NombreIndeterminePere sont des entiers=0
nombreDeFemininMere,NombreDeMasculinMere,NombreIndetermineMere sont des entiers=0
nombreDeFemininAutre,NombreDeMasculinAutre,NombreIndetermineAutre sont des entiers=0
TANTQUE PAS HEnDehors(MaRequête)
SI MaRequête.declarant="pere" ALORS
SELON MaRequête.sexe
CAS "feminin" : nombreDeFemininPere+=1
CAS "masculin" : NombreDeMasculinPere+=1
CAS "indetermine" : NombreIndeterminePere+=1
FIN
SINON
SI MaRequête.declarant="mere" ALORS
SELON MaRequête.sexe
CAS "feminin" : nombreDeFemininMere+=1
CAS "masculin" : NombreDeMasculinMere+=1
CAS "indetermine" : NombreIndetermineMere+=1
FIN
SINON
SI MaRequête.declarant="autre" ALORS
SELON MaRequête.sexe
CAS "feminin" : nombreDeFemininAutre+=1
CAS "masculin" : NombreDeMasculinAutre+=1
CAS "indetermine" : NombreIndetermineAutre+=1
FIN
FIN
FIN
FIN
HLitSuivant(MaRequête)
FIN
TotalPere est un entier=nombreDeFemininPere+NombreDeMasculinPere+NombreIndeterminePere
TotalMere est un entier=nombreDeFemininMere+NombreDeMasculinMere+NombreIndetermineMere
TotalAutre est un entier=nombreDeFemininAutre+NombreDeMasculinAutre+NombreIndetermineAutre
TotalGeneral est un entier=TotalPere+TotalMere+TotalAutre
TableAjouteLigne(Table1,"Pere",NombreDeMasculinPere,nombreDeFemininPere,NombreIndeterminePere,TotalPere)
TableAjouteLigne(Table1,"Mere",NombreDeMasculinMere,nombreDeFemininMere,NombreIndetermineMere,TotalMere)
TableAjouteLigne(Table1,"Autre",NombreDeMasculinAutre,nombreDeFemininAutre,NombreIndetermineAutre,TotalAutre)
Pour le total Général, tu l'as dans la varibale : "TotalGeneral" .. mets le ou tu veux. Si tu veux l'afficher dans la même table utilise :
TableAjouteLigne(Table1,"Total naissance enregistrées ",TotalGeneral)
PS: Ici la recherche de fait sur la date de déclaration, si tu veux la faire sur la date de naissance, modifie la chaine de la requête :
Req est une chaîne="SELECT Naissance.declarant AS declarant, Naissance.date_Naissance AS date_Naissance, Naissance.sexe AS sexe FROM Naissance WHERE date_Naissance BETWEEN ' "+DateDébut+"' AND '"+DateFin+" '"
Contribution le : 06/05/2004 16:46
|
|
|
|
|
Re: aide urgente:Requete SQL pour une table de naissance |
|
|
|
bonjour, si la syntaxe est accepter alors la requete est : Citation : select
declarant, sum( if (sexe='M',1,0)) as masculin, sum( if (sexe='M',1,0)) as feminin, sum( if (sexe='M',1,0)) as indetermine from naissance WHERE date_declaration BETWEEN 'DateDébut' AND 'DateFin' group by declarant
reste plus qu'a ajouter les lignes dans une table et faire les totaux horizontaux et verticaux au passage
Contribution le : 06/05/2004 17:08
|
|
|
|
|
Re: aide urgente:Requete SQL pour une table de naissance |
|
|
Anonyme
|
Merci Bassy et Firetox, Je vais l'essayer en fais de semaine et je ne manquerai de vous informer. Encore Merci
Contribution le : 06/05/2004 17:15
|
|
|
|
|
Re: aide urgente:Requete SQL pour une table de naissance |
|
|
Anonyme
|
Salut Bassy, J'ai juste une petite question qui est la suivante: Comment cree t -on Table1?(par declaration ou à partir de l'interface de windev)...Table1 est une table memoire ou Table fichier Merci
Contribution le : 06/05/2004 19:35
|
|
|
|
|
Re: aide urgente:Requete SQL pour une table de naissance |
|
|
Inscrit: 18/12/2003 13:14
Post(s): 212
|
Rebonjour Tout d'abord ne pas confondre Table et FICHIER (Hyperfile). Une table c'est le Tableau qu'on insère sur la fenêtre composé de lignes et de colonnes pour pouvoir afficher des enregistrements venant d'un FICHIER hyperfile ou une requête. Pour insérer une Table, tu n'as qu'à cliqué sur le bouton correspondant sur la barre d'outils de Windev. Suite à l'assistant, on fait le choix entre : > Table Fichier (Afficher les données provenant d'un fichier ou d'une requête. > Table Mémoire (Je veux remplir moimême la Table par programmation. On sélectionne le deuxieme choix, et on crée le nombre de colonnes ET LE TYPE des données que contiendront ces colonnes (Texte, Numérique, Date....etc) Et en enregistre en lui donnant un nom : Ici c'est (TABLE1).
Attention aux Noms des colonnes, il faut bien les choisir. PS: dans Propriété de la Table, tu peux modofier tout ce qu'on vient de citer selon ton besoin.
Contribution le : 06/05/2004 20:22
|
|
|
|
|
Re: aide urgente:Requete SQL pour une table de naissance |
|
|
Anonyme
|
Merci de la clarification ...ca va beaucoup aider Merci
Contribution le : 06/05/2004 20:31
|
|
|
|
|
Re: aide urgente:Requete SQL pour une table de naissance |
|
|
Inscrit: 18/12/2003 13:14
Post(s): 212
|
Salut N'hésite pas surtoût à donner suite à ce que tu obtiens
Contribution le : 06/05/2004 20:43
|
|
|
|
|
Re: aide urgente:Requete SQL pour une table de naissance |
|
|
Anonyme
|
pas de probleme
Contribution le : 06/05/2004 20:46
|
|
|
|
|
Re: aide urgente:Requete SQL pour une table de naissance |
|
|
Anonyme
|
Merci Bassy...Tout fonctionne tres bien. Je vous remercie du fond du coeur. Thanks again
Contribution le : 08/05/2004 03:08
|
|
|
|
|
Re: aide urgente:Requete SQL pour une table de naissance |
|
|
Inscrit: 18/12/2003 13:14
Post(s): 212
|
Bonjour Nous sommes heureux que tu puisses obtenir ce que tu cherchais, ET j'en profite dans ce forum d'inviter tout le monde que ce soit des débutants pour pouvoir leur aider avec tout ce que les modérateurs possèdent comme expérience ou encore des spécialistes pour pouvoir échanger leurs expériences. Visiter les Forums Rbesset est essayer d'être présents sur toutes les plateformes, en participant dans les deux côtés : Réponses et Questions.
Merci à vous tous
Contribution le : 08/05/2004 14:50
|
|
|
Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.
|
Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
|