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
Créer un fichier PDF de la contribution Imprimer


Re: aide urgente:Requete SQL pour une table de naissance

Inscrit:
18/12/2003 13:14
Post(s): 212
bonjour et bienvenue
Pour te faciliter la chose, utilise plutôt l'assistant des requête et incorpore ta conditionparam1 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
_________________
Bonne Chance.
M'envoyer un message......
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


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
_________________
Bonne Chance.
M'envoyer un message......
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


Re: aide urgente:Requete SQL pour une table de naissance

Inscrit:
18/12/2003 13:14
Post(s): 212
bonjour
Alors, 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
_________________
Bonne Chance.
M'envoyer un message......
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


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
_________________
Bonne Chance.
M'envoyer un message......
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


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
_________________
Bonne Chance.
M'envoyer un message......
Créer un fichier PDF de la contribution Imprimer


Re: aide urgente:Requete SQL pour une table de naissance
Anonyme
pas de probleme

Contribution le : 06/05/2004 20:46
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


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
_________________
Bonne Chance.
M'envoyer un message......
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


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.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2