OVH Cloud OVH Cloud

Mes débuts en SQL Help!

2 réponses
Avatar
Francis Massot
Bonjour,
Si je suis sur le bon newsgroup, et débutant en SQL votre aide me serait
précieuse,

J'ai rempli deux mshflexgrid par des requètes sql .

la requéte 1 me donne :
Nom Valeur 1 Valeur 2

voici ma requète
Adodc1.RecordSource = "Select TIER, Sum(Facture_théorique) As
Facture_théorique, Sum(Facture) As Facture" _
& " from Ventes" _
& " where DATEPIECE >= " & DateDébutUS & " And DATEPIECE <= " &
DateFinUS _
& " GROUP BY TIER Order by TIER "

la requéte 2 me donne :
Nom Valeur 3

voici ma requète
Adodc2.RecordSource = "SELECT TIER, sum(MONTANTTOT)" _
& " FROM Avoirs" _
& " where DATEPIECE >= " & DateDébutUS & " And DATEPIECE <= " &
DateFinUS _
& " GROUP BY TIER Order by TIER;"

Je souhaiterai créer une nouvelle requète (Union) qui me permettrait de
remplir un
nouveau Mshflexgrid qui comprendrait

Nom Valeur 1 Valeur 2 et Valeur 3

Sachant qu'il peut y avoir des enregistrements pour un nom donné dans une
requète qui n'existent pas dans l'autre requète

Je n'y arrive pas malgré mes recherches sur Internet !!!!

Merci par avance pour votre aide.

2 réponses

Avatar
Vuillermet Jacques
On détermine d'abord la liste des tiers par un UNION.
Puis on va chercher dans chaque table les informations recherchées.
Enfin, on tri.

SELECT T.TIER, V.FACTURE_THÉORIQUE, V.FACTURE, A.MONTANT_TOTAL
FROM (
SELECT TIER
FROM
UNION
SELECT TIER
FROM
) T

LEFT OUTER JOIN (
SELECT TIER, SUM(FACTURE_THÉORIQUE) AS FACTURE_THÉORIQUE, SUM(FACTURE) AS
FACTURE
FROM VENTES
WHERE DATEPIECE >= " & DATEDÉBUTUS & " AND DATEPIECE <= DATEFINUS
GROUP BY TIER
) V
ON T.TIER = V.TIER

LEFT OUTER JOIN (
SELECT TIER, SUM(MONTANTTOT) AS MONTANT_TOTAL
FROM AVOIRS
WHERE DATEPIECE >= " & DATEDÉBUTUS & " AND DATEPIECE <= DATEFINUS
GROUP BY TIER
) A
ON T.TIER = A.TIER
ORDER BY TIER

Je te laisse remettre tout cela en VB.

Jacques.


"Francis Massot" a écrit dans le message de
news:
Bonjour,
Si je suis sur le bon newsgroup, et débutant en SQL votre aide me serait
précieuse,

J'ai rempli deux mshflexgrid par des requètes sql .

la requéte 1 me donne :
Nom Valeur 1 Valeur 2

voici ma requète
Adodc1.RecordSource = "Select TIER, Sum(Facture_théorique) As
Facture_théorique, Sum(Facture) As Facture" _
& " from Ventes" _
& " where DATEPIECE >= " & DateDébutUS & " And DATEPIECE <= " &
DateFinUS _
& " GROUP BY TIER Order by TIER "

la requéte 2 me donne :
Nom Valeur 3

voici ma requète
Adodc2.RecordSource = "SELECT TIER, sum(MONTANTTOT)" _
& " FROM Avoirs" _
& " where DATEPIECE >= " & DateDébutUS & " And DATEPIECE <= " &
DateFinUS _
& " GROUP BY TIER Order by TIER;"

Je souhaiterai créer une nouvelle requète (Union) qui me permettrait de
remplir un
nouveau Mshflexgrid qui comprendrait

Nom Valeur 1 Valeur 2 et Valeur 3

Sachant qu'il peut y avoir des enregistrements pour un nom donné dans une
requète qui n'existent pas dans l'autre requète

Je n'y arrive pas malgré mes recherches sur Internet !!!!

Merci par avance pour votre aide.




Avatar
Francis Massot
Jacques, Merci pour ta réponse que je découvre aujourd'hui. Je n'attendais
plus !
Je vais tester tout de suite
@micalement

"Vuillermet Jacques" a écrit dans le message de
news:%

On détermine d'abord la liste des tiers par un UNION.
Puis on va chercher dans chaque table les informations recherchées.
Enfin, on tri.

SELECT T.TIER, V.FACTURE_THÉORIQUE, V.FACTURE, A.MONTANT_TOTAL
FROM (
SELECT TIER
FROM
UNION
SELECT TIER
FROM
) T

LEFT OUTER JOIN (
SELECT TIER, SUM(FACTURE_THÉORIQUE) AS FACTURE_THÉORIQUE, SUM(FACTURE)


AS
FACTURE
FROM VENTES
WHERE DATEPIECE >= " & DATEDÉBUTUS & " AND DATEPIECE <= DATEFINUS
GROUP BY TIER
) V
ON T.TIER = V.TIER

LEFT OUTER JOIN (
SELECT TIER, SUM(MONTANTTOT) AS MONTANT_TOTAL
FROM AVOIRS
WHERE DATEPIECE >= " & DATEDÉBUTUS & " AND DATEPIECE <= DATEFINUS
GROUP BY TIER
) A
ON T.TIER = A.TIER
ORDER BY TIER

Je te laisse remettre tout cela en VB.

Jacques.


"Francis Massot" a écrit dans le message de
news:
> Bonjour,
> Si je suis sur le bon newsgroup, et débutant en SQL votre aide me serait
> précieuse,
>
> J'ai rempli deux mshflexgrid par des requètes sql .
>
> la requéte 1 me donne :
> Nom Valeur 1 Valeur 2
>
> voici ma requète
> Adodc1.RecordSource = "Select TIER, Sum(Facture_théorique) As
> Facture_théorique, Sum(Facture) As Facture" _
> & " from Ventes" _
> & " where DATEPIECE >= " & DateDébutUS & " And DATEPIECE <= " &
> DateFinUS _
> & " GROUP BY TIER Order by TIER "
>
> la requéte 2 me donne :
> Nom Valeur 3
>
> voici ma requète
> Adodc2.RecordSource = "SELECT TIER, sum(MONTANTTOT)" _
> & " FROM Avoirs" _
> & " where DATEPIECE >= " & DateDébutUS & " And DATEPIECE <= " &
> DateFinUS _
> & " GROUP BY TIER Order by TIER;"
>
> Je souhaiterai créer une nouvelle requète (Union) qui me permettrait de
> remplir un
> nouveau Mshflexgrid qui comprendrait
>
> Nom Valeur 1 Valeur 2 et Valeur 3
>
> Sachant qu'il peut y avoir des enregistrements pour un nom donné dans


une
> requète qui n'existent pas dans l'autre requète
>
> Je n'y arrive pas malgré mes recherches sur Internet !!!!
>
> Merci par avance pour votre aide.
>
>