Une aide svp en sql
tft_rezak
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
tft_rezak Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
tft_rezak Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je debut avec le sql (oracle8)
Jai deux table table1 et table2
table1 contient les rubriques (periode,montant_mensuel,numero)
periode = janvier fevrier mars...
table2 contient elle les rubriques (annee , montant_annee,numero)
je voudrais faire resortir le total mensuel par annee et par numero de la table1
avec la table2
voici ma requete
mais le resultat lui est faux
par exemple pour le numero 151 en 2010 au lieu de 19000.00 jai 76000.00
et verifier que le numero 177 y a une diffrence entre les mois et l'annee
svp aidez moi a le resoudre
merci
je debut avec le sql (oracle8)
Jai deux table table1 et table2
table1 contient les rubriques (periode,montant_mensuel,numero)
periode = janvier fevrier mars...
table2 contient elle les rubriques (annee , montant_annee,numero)
je voudrais faire resortir le total mensuel par annee et par numero de la table1
avec la table2
voici ma requete
select substr(t1.periode,1,4) ,sum(t1.montant_Mensuel) , sum(t2.montant_annee),t1.numero from table1 t1,table2 t2 where t1.numero = t2.numero and substr(t1.periode,1,4) = t2.annee group by t1.numero,substr(t1.periode,1,4) table1 table2 periode montant_mensuel numero annee monatnt_annee numero 201001 12000.00 151 (janvier) 2010 19000.00 151 201002 4000.00 151 (fevrier 2010 16500.00 152 201003 2000.00 151 (mars 2010 12000.00 177 201004 1000.00 151 (avril 201001 12000.00 152 (janvier 201002 4500.00 152 (fevrier 201005 12000.00 177 (mai 201006 4752.36 177 (juin
mais le resultat lui est faux
par exemple pour le numero 151 en 2010 au lieu de 19000.00 jai 76000.00
et verifier que le numero 177 y a une diffrence entre les mois et l'annee
svp aidez moi a le resoudre
merci
A voir également:
- Une aide svp en sql
- Logiciel sql - Télécharger - Bases de données
- Requete sql pix ✓ - Forum MySQL
- Sql lister les tables ✓ - Forum Programmation
- Récupération serveur sql - Télécharger - Gestion de données
- Migration base access vers sql server - Télécharger - Gestion de données
8 réponses
Bonjour,
que veux tu faire exactement ? remplir la table2 à partir des infos de la table1 ?
Car dans ta requête je ne comprend pas bien ce que tu veux afficher.
que veux tu faire exactement ? remplir la table2 à partir des infos de la table1 ?
Car dans ta requête je ne comprend pas bien ce que tu veux afficher.
Bonjour,
j'ai du mal formulé ma question voila pour la table1 elle contient le detail mensuel des montant versé par client.
exemple le client 151 doit pour l'annee 2010 une somme de 19000.00€ table2
et table1 elle contient le details mensuel des versement par mois (jan fev mar avr... )
et voila le resulat que je veux obtenir avec cette requete
salutation et merci pour votre aide
j'ai du mal formulé ma question voila pour la table1 elle contient le detail mensuel des montant versé par client.
exemple le client 151 doit pour l'annee 2010 une somme de 19000.00€ table2
et table1 elle contient le details mensuel des versement par mois (jan fev mar avr... )
et voila le resulat que je veux obtenir avec cette requete
select substr(t1.periode,1,4)as annee ,sum(t1.montant_Mensuel)as total_mensuel , sum(t2.montant_annee)as montant_annee ,t1.numero as numero_client from table1 t1,table2 t2 where t1.numero = t2.numero and substr(t1.periode,1,4) = t2.annee group by t1.numero,substr(t1.periode,1,4) exemple annee total_mensuel montant_annee numero_client 2010 19000.00 19000.00 151 solde = 0 c'est ok 2010 16752.36 12000.00 177 solde > 0 pas normale ... un autre cas peut se prensenter si annee total_mensuel montant_annee numero_client 1999 9000.00 19000.00 151 solde < 0 il doit encore 10000.00
salutation et merci pour votre aide
Et bien j'ai une réponse que j'ai faite sous postgresql, donc il faudra surement l'adapter pour oracle, de plus je ne connais pas le type exact de tes champs dans ta base du coup il est possible que l'analyseur syntaxique te dise que les tests ne sont pas bons car les champs n'ont pas le même type, il faudra alors les caster dans le type correspondant.
Enfin voila une requête qui fonctionne chez moi :
Si tu as des questions n'hésite pas ^^
Enfin voila une requête qui fonctionne chez moi :
SELECT t2.annee, t1.total_mensuel, t2.montant_annee, t2.numero FROM table2 t2 INNER JOIN ( SELECT SUM(t3.montant_mensuel) as total_mensuel, id FROM ( SELECT SUBSTR(periode,1,4)||numero as id, montant_mensuel, SUBSTR(periode,1,4) as annee, numero FROM table1 ) as t3 GROUP BY id) t1 ON t2.numero::text = SUBSTR(id,5,6) AND t2.annee = SUBSTR(id,1,4)
Si tu as des questions n'hésite pas ^^
select t1.numero,annee,montant_annee, sum(montant_mensuel)
from table1 t1,table2 t2
where t1.numero = t2.numero
group by t1.numero,annee,montant_annee
tout simplement !
from table1 t1,table2 t2
where t1.numero = t2.numero
group by t1.numero,annee,montant_annee
tout simplement !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
select t1.numero,annee,montant_annee, sum(montant_mensuel)
from table1 t1,table2 t2
where t1.numero = t2.numero
group by t1.numero,annee,montant_annee
tout simplement !
from table1 t1,table2 t2
where t1.numero = t2.numero
group by t1.numero,annee,montant_annee
tout simplement !
select t1.numero,annee,montant_annee, sum(montant_mensuel)
from table1 t1,table2 t2
where t1.numero = t2.numero
group by t1.numero,annee,montant_annee
tout simplement !
from table1 t1,table2 t2
where t1.numero = t2.numero
group by t1.numero,annee,montant_annee
tout simplement !
select t1.numero,annee,montant_annee, sum(montant_mensuel)
from table1 t1,table2 t2
where t1.numero = t2.numero
group by t1.numero,annee,montant_annee
tout simplement !
from table1 t1,table2 t2
where t1.numero = t2.numero
group by t1.numero,annee,montant_annee
tout simplement !
bonjour a tous et merci pour toute l'aide que vous m'apportez
pour la derniere requete elle marche bien j'ai les les soldes en plus ou en moins maintenat je suis confrenté a un autre probleme
c'est qu'il ya une rubrique de type date "journee"
et la table table2
et le resultat de la requete uniquement pour le numero 151
pour la derniere requete elle marche bien j'ai les les soldes en plus ou en moins maintenat je suis confrenté a un autre probleme
c'est qu'il ya une rubrique de type date "journee"
et la table table2
table2
annee montant_annee numero journee
2010 9000.00 151 20100102
2010 3000.00 151 20100302
2010 7000.00 151 20100602
2010 4800.00 151 20100604 erreur de saisie
2010 -4800.00 151 20100604 erreur de saisie
2010 16500.00 152
2010 12000.00 177
et le resultat de la requete uniquement pour le numero 151
annee total_mensuel montant_annee numero_client 2010 19000.00 9000.00 151 2010 19000.00 3000.00 151 2010 19000.00 7000.00 151 ... J'aurai Voulu avoir comme resultat 2010 19000.00 19000.00 151 quelque soit le nombre d'ecritures dans la table2 pour ceux qui en une seul ecriture dans la Table2 aucun souci ça marche bien la requete