PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → requete dans  2 fichiers
requete dans 2 fichiers
Débuté par Dc, 12 juin 2016 18:18 - 4 réponses
Posté le 12 juin 2016 - 18:18
Bjr,

Etant un peu blaireau en SQL, des select from where .. me suffisaient
jusqu'a maintenant, je suis confronté a un autre probleme.

Je veux une requete qui va puiser dans 2 fichiers , ce n'est pas un
probleme de jointures (je connais un peu) ca serait plutot un probleme
de UNION mais la doc dit que on doit taper dans 2 fichiers de meme
structure.
moi j'ai(en simplifiant) :
F1 :
-date
-client
-montant

et
F2 :
-date
-montant

Il me faudrait en resultat, le total des montants par date des deux
fichiers additonnés ... (sans les clients bien sur puisque dans une
seul fichier) . Est ce que UNION peut marcher ou y-t-il une autre
solution ?

Merci de vos lumieres ...
a plus


--
-------------------------------------------------------------
www.ctc-soft.com
Gestion biblo-documentaire (free-share)
Comptabilité shareware
Logiciels de Gestion de saisie terrain
Spécialisé Tournées de boulangers
-------------------------------------------------------------
Posté le 13 juin 2016 - 11:31
Tu devrais essayer SELECT SUM(F1.montant + F2.montant) FROM F1, F2
Posté le 13 juin 2016 - 19:20
Etape 1 :
SELECT DATE, montant , client FROM f1
UNION ALL
SELECT DATE, montant , 'xxx' AS client FROM f2

Cette requête va te renvoyer une ligne pour chaque ligne de f1 ou de f2. J'ai précisé union all au lieu de union, sinon tu perdrais des enregistrements ( si pour le même jour et le même montant, tu as 2 lignes

Etape 2: faire des sous totaux :
SELECT DATE , SUM( montant ) FROM
(
SELECT DATE, montant , client FROM f1
UNION ALL
SELECT DATE, montant , 'xxx' AS client FROM f2
)
GROUP BY DATE


Quand on veut faire des additions, ou des comptage, ou des moyennes, ça passe par Group by.
Posté le 13 juin 2016 - 23:46
Bjr,

Joel avait prétendu :
Etape 1 :
select date, montant , client from f1
union all
select date, montant , 'xxx' as client from f2

Cette requête va te renvoyer une ligne pour chaque ligne de f1 ou de f2.
J'ai précisé union all au lieu de union, sinon tu perdrais des
enregistrements ( si pour le même jour et le même montant, tu as 2 lignes

Etape 2: faire des sous totaux :
select date , sum( montant ) from ( select date, montant , client from f1
union all
select date, montant , 'xxx' as client from f2
) group by date


Quand on veut faire des additions, ou des comptage, ou des moyennes, ça passe
par Group by.


Ok merci, je vais essayer le UNION alors, meme si les 2 fichiers n'ont
pas la meme structure

a plus

--
-------------------------------------------------------------
www.ctc-soft.com
Gestion biblo-documentaire (free-share)
Comptabilité shareware
Logiciels de Gestion de saisie terrain
Spécialisé Tournées de boulangers
-------------------------------------------------------------
Posté le 13 juin 2016 - 23:46
a2f_Ju a émis l'idée suivante :
> Tu devrais essayer SELECT SUM(F1.montant + F2.montant) FROM F1, F2

c 'est a eesayer mais ca me parait bizarre
merci

--
-------------------------------------------------------------
www.ctc-soft.com
Gestion biblo-documentaire (free-share)
Comptabilité shareware
Logiciels de Gestion de saisie terrain
Spécialisé Tournées de boulangers
-------------------------------------------------------------