Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
3stone
Salut,
le Nordiste wrote:
J'ai une requête UNION : MaRequete_1 UNION MaRequete_2
MaRequete_1 fait la synthése d'une table, MaRequete_2 fait les totaux par champ de MaRequete_2
J'ai systématiquement mes totaux en 1ére ligne du résultat, que je fasse MaRequete_1 UNION MaRequete_2 ou MaRequete_2 UNION MaRequete_1.
Il me semblait que SQL traitait dans l'ordre de lecture les requêtes.
Pour une requête UNION, il faut le même nombre et le même type de champs pour que cela fonctionne...
S'il faut un tri, tu ne pourras l'appliqué que sur la totalité des enregistrements retournés. Donc, impossible de faire quelque chose comme: Select * From table1 Orderby a UNION Select * from table2 Orderby b
Mais, on peut parfois contourner en créant un champ calculé dans chaque requête, du style:
Select 0 As Toto, c1, c2 From table1 union Select 1 As Toto, c1, c2 from table2 orderby Toto
J'ai une requête UNION : MaRequete_1 UNION MaRequete_2
MaRequete_1 fait la synthése d'une table,
MaRequete_2 fait les totaux par champ de MaRequete_2
J'ai systématiquement mes totaux en 1ére ligne du résultat, que je
fasse
MaRequete_1 UNION MaRequete_2 ou MaRequete_2 UNION MaRequete_1.
Il me semblait que SQL traitait dans l'ordre de lecture les requêtes.
Pour une requête UNION, il faut le même nombre et le même type
de champs pour que cela fonctionne...
S'il faut un tri, tu ne pourras l'appliqué que sur la totalité des
enregistrements retournés.
Donc, impossible de faire quelque chose comme:
Select * From table1 Orderby a
UNION
Select * from table2 Orderby b
Mais, on peut parfois contourner en créant un champ
calculé dans chaque requête, du style:
Select 0 As Toto, c1, c2 From table1
union
Select 1 As Toto, c1, c2 from table2 orderby Toto
J'ai une requête UNION : MaRequete_1 UNION MaRequete_2
MaRequete_1 fait la synthése d'une table, MaRequete_2 fait les totaux par champ de MaRequete_2
J'ai systématiquement mes totaux en 1ére ligne du résultat, que je fasse MaRequete_1 UNION MaRequete_2 ou MaRequete_2 UNION MaRequete_1.
Il me semblait que SQL traitait dans l'ordre de lecture les requêtes.
Pour une requête UNION, il faut le même nombre et le même type de champs pour que cela fonctionne...
S'il faut un tri, tu ne pourras l'appliqué que sur la totalité des enregistrements retournés. Donc, impossible de faire quelque chose comme: Select * From table1 Orderby a UNION Select * from table2 Orderby b
Mais, on peut parfois contourner en créant un champ calculé dans chaque requête, du style:
Select 0 As Toto, c1, c2 From table1 union Select 1 As Toto, c1, c2 from table2 orderby Toto
Tes explications m'ont éclairé sur une solution possible ; mais mon Pb du moment n'est pas résolu pour autant:
J'ai bien :
Pour une requête UNION, il faut le même nombre et le même type de champs pour que cela fonctionne...
mais j'ai systématiquement ma ligne TOTAL en 1ére ligne du résultat quelquesoit l'ordre des deux requêtes.
Comment faire pour que le résultat de "MaRequete_1 UNION MaRequete_2 " donne sur dans l'ordre vertical :
le résultat de MaRequete_1 et dessous le résultat deMaRequete_2
Merc i de consacrer ton temps à mes petits soucis.
3stone
Salut,
le Nordiste wrote:
Tes explications m'ont éclairé sur une solution possible ; mais mon Pb du moment n'est pas résolu pour autant:
J'ai bien :
Pour une requête UNION, il faut le même nombre et le même type de champs pour que cela fonctionne...
mais j'ai systématiquement ma ligne TOTAL en 1ére ligne du résultat quelquesoit l'ordre des deux requêtes.
Comment faire pour que le résultat de "MaRequete_1 UNION MaRequete_2 " donne sur dans l'ordre vertical :
le résultat de MaRequete_1 et dessous le résultat deMaRequete_2
Tu dis: "ma ligne TOTAL"
Une des requête est une requête regroupement et ne te ramène qu'une seule ligne ? Si oui, intègre un champ calculé comme expliqué avant et sur lequel tu peux trier. Tu peux éventuellement trier sur un second champ pour garder un certain ordre dans la seconde requête en utilisant ceci: http://www.3stone.be/access/articles.php?lng=fr&pg9" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.3stone.be/access/articles.php?lng=fr&pg9 - le tout risque éventuelement de devenir un peu lent...
Ceci dit, je me demande si tu n'essaies pas de reproduire ce que l'on obtient très facilement dans un état ;-)
Tes explications m'ont éclairé sur une solution possible ;
mais mon Pb du moment n'est pas résolu pour autant:
J'ai bien :
Pour une requête UNION, il faut le même nombre et le même type
de champs pour que cela fonctionne...
mais j'ai systématiquement ma ligne TOTAL en 1ére ligne du résultat
quelquesoit l'ordre des deux requêtes.
Comment faire pour que le résultat de "MaRequete_1 UNION MaRequete_2 "
donne sur dans l'ordre vertical :
le résultat de MaRequete_1
et dessous
le résultat deMaRequete_2
Tu dis: "ma ligne TOTAL"
Une des requête est une requête regroupement et ne te ramène
qu'une seule ligne ?
Si oui, intègre un champ calculé comme expliqué avant
et sur lequel tu peux trier.
Tu peux éventuellement trier sur un second champ pour garder
un certain ordre dans la seconde requête en utilisant ceci:
http://www.3stone.be/access/articles.php?lng=fr&pg9
- le tout risque éventuelement de devenir un peu lent...
Ceci dit, je me demande si tu n'essaies pas de reproduire
ce que l'on obtient très facilement dans un état ;-)
Tes explications m'ont éclairé sur une solution possible ; mais mon Pb du moment n'est pas résolu pour autant:
J'ai bien :
Pour une requête UNION, il faut le même nombre et le même type de champs pour que cela fonctionne...
mais j'ai systématiquement ma ligne TOTAL en 1ére ligne du résultat quelquesoit l'ordre des deux requêtes.
Comment faire pour que le résultat de "MaRequete_1 UNION MaRequete_2 " donne sur dans l'ordre vertical :
le résultat de MaRequete_1 et dessous le résultat deMaRequete_2
Tu dis: "ma ligne TOTAL"
Une des requête est une requête regroupement et ne te ramène qu'une seule ligne ? Si oui, intègre un champ calculé comme expliqué avant et sur lequel tu peux trier. Tu peux éventuellement trier sur un second champ pour garder un certain ordre dans la seconde requête en utilisant ceci: http://www.3stone.be/access/articles.php?lng=fr&pg9" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.3stone.be/access/articles.php?lng=fr&pg9 - le tout risque éventuelement de devenir un peu lent...
Ceci dit, je me demande si tu n'essaies pas de reproduire ce que l'on obtient très facilement dans un état ;-)