Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3171 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  cherche editeur qui formate et indent des requetes sql

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

cherche editeur qui formate et indent des requetes sql

n°1719742
pactole@
Posté le 18-04-2008 à 11:04:56  profilanswer
 

salut,  
je un cherche editeur qui formate et indent des requetes sql
gratuit si possible
 

mood
Publicité
Posté le 18-04-2008 à 11:04:56  profilanswer
 

n°1719751
Elmoricq
Modérateur
Posté le 18-04-2008 à 11:11:25  profilanswer
 

SquirrelSQL fait ça plutôt bien.
http://www.squirrelsql.org

Message cité 1 fois
Message édité par Elmoricq le 18-04-2008 à 11:11:51
n°1719812
MagicBuzz
Posté le 18-04-2008 à 12:14:10  profilanswer
 

ta touche tablulation marche pas ?
 
d'autant que j'ai toujours vu les formateurs ne faire que de la merde à partir du moment où on imbrique des requêtes et/ou on appelle des procédures stockées (je parle pas d'une requête imbriquée dans l'appel d'une ps...)
 
le truc t'as 25 lignes de 2 caractères, en plus généralement avec une indentation foireuse (genre le where qui ne retombe pas au niveau du FROM)
 
bref... 2 minutes de tabulations et retours chariots, ça n'a jamais fait de mal, et l'avantage c'est qu'une fois indentée, t'as compris à 95% la requête.

Message cité 1 fois
Message édité par MagicBuzz le 18-04-2008 à 12:16:18
n°1719822
MagicBuzz
Posté le 18-04-2008 à 12:42:34  profilanswer
 

Genre :
 
Ca, c'est ce que j'ai écrit. C'est relou, faut scroller un peu sur la droite, mais c'est lisible.

Code :
  1. SELECT
  2.  tbl.lib1 enseigne,
  3.  cli.nomtie,
  4.  SUBSTR(fac.datliv, 5, 2) mois,
  5.  decode(facp.numevo, 0, facp.numeve, facp.numevo) cde,
  6.  ROUND(SUM(f_qtedip(facp.codsoc, facp.codpro, facp.coduni, 'PAL', facp.qtecde)), 2) cpal,
  7.  SUM(DECODE(pro.codzn3, 'OS', facp.qtecde * facp.prxvdu, 0)) ctotal,
  8.  ROUND(SUM(DECODE(pro.codzn3, 'OS', f_qtedip(facp.codsoc, facp.codpro, facp.coduni, 'PAL', facp.qtecde), 0)), 2) ospal,
  9.  facp.prxuf ostotal,
  10.  DECODE(pro.codzn3, 'OS', DECODE (fct_valzod (75,  'PRO',  pro.codpro,  128 ), 'PROMO', 1, 0), 0) promo,
  11.  facp.taurem1,
  12.  facp.prxbrtfac
  13. FROM eve fac
  14. INNER JOIN lad l ON l.codsoc = fac.codsoc AND l.typtie = fac.typtie AND l.sigtie = fac.sigtie AND l.typadr = 'FAC' AND l.numadr = fac.numfil AND fac.sigtie <> '245205' AND l.sigadr <> '245205'
  15. INNER JOIN evp facp ON facp.codsoc = fac.codsoc AND facp.achvte = fac.achvte AND facp.typeve = fac.typeve AND facp.numeve = fac.numeve
  16. INNER JOIN pro ON pro.codsoc = fct_mev(fac.codsoc, 'PRO', ' ') AND pro.codpro = facp.codpro
  17. INNER JOIN tie cli ON cli.codsoc = fct_mev(fac.codsoc, 'TIE', 'CLI') AND cli.typtie = fac.typtie AND cli.sigtie = fac.sigtie
  18. INNER JOIN tbl ON tbl.codsoc = fct_mev(cli.codsoc, 'TBL', '210') AND tbl.codtbl = '210' AND tbl.cletbl = cli.codzn5
  19. WHERE fac.codsoc IN (fct_mev(?, 'EVE', ' '), fct_mev(?, 'EVE', ' ')) AND fac.achvte = 'V' AND fac.typeve = 'FAC' AND SUBSTR(fac.datliv, 0, 4) = ? AND EXISTS
  20. (
  21.  SELECT NULL
  22.  FROM evp osp
  23.  INNER JOIN pro os ON os.codsoc = fct_mev(osp.codsoc, 'PRO', ' ') AND os.codpro = osp.codpro AND os.codzn3 = 'OS' WHERE osp.codsoc = fct_mev(fac.codsoc, 'EVP', ' ') AND osp.achvte = fac.achvte AND osp.typeve = fac.typeve AND osp.numeve = fac.numeve
  24. )
  25. GROUP BY tbl.lib1, cli.nomtie, SUBSTR(fac.datliv, 5, 2), decode(facp.numevo, 0, facp.numeve, facp.numevo), DECODE (pro.codzn3, 'OS', DECODE(fct_valzod(75,  'PRO',  pro.codpro,  128 ), 'PROMO', 1, 0), 0), facp.prxuf, facp.prxbrtfac, facp.taurem1
  26. ORDER BY enseigne, nomtie, mois, cde, promo, ostotal


 
Ca, c'est ce que donne Formater Plus dans TOAD :

Code :
  1. /* Formatted on 2008/04/18 12:41 (Formatter Plus v4.8.5) */
  2. SELECT   tbl.lib1 enseigne, cli.nomtie, SUBSTR (fac.datliv, 5, 2) mois,
  3.         DECODE (facp.numevo, 0, facp.numeve, facp.numevo) cde,
  4.         ROUND (SUM (f_qtedip (facp.codsoc,
  5.                               facp.codpro,
  6.                               facp.coduni,
  7.                               'PAL',
  8.                               facp.qtecde
  9.                              )
  10.                    ),
  11.                2
  12.               ) cpal,
  13.         SUM (DECODE (pro.codzn3, 'OS', facp.qtecde * facp.prxvdu, 0)) ctotal,
  14.         ROUND (SUM (DECODE (pro.codzn3,
  15.                             'OS', f_qtedip (facp.codsoc,
  16.                                             facp.codpro,
  17.                                             facp.coduni,
  18.                                             'PAL',
  19.                                             facp.qtecde
  20.                                            ),
  21.                             0
  22.                            )
  23.                    ),
  24.                2
  25.               ) ospal,
  26.         facp.prxuf ostotal,
  27.         DECODE (pro.codzn3,
  28.                 'OS', DECODE (fct_valzod (75, 'PRO', pro.codpro, 128),
  29.                               'PROMO', 1,
  30.                               0
  31.                              ),
  32.                 0
  33.                ) promo,
  34.         facp.taurem1, facp.prxbrtfac
  35.    FROM eve fac INNER JOIN lad l ON l.codsoc = fac.codsoc
  36.                                AND l.typtie = fac.typtie
  37.                                AND l.sigtie = fac.sigtie
  38.                                AND l.typadr = 'FAC'
  39.                                AND l.numadr = fac.numfil
  40.                                AND fac.sigtie <> '245205'
  41.                                AND l.sigadr <> '245205'
  42.         INNER JOIN evp facp ON facp.codsoc = fac.codsoc
  43.                           AND facp.achvte = fac.achvte
  44.                           AND facp.typeve = fac.typeve
  45.                           AND facp.numeve = fac.numeve
  46.         INNER JOIN pro ON pro.codsoc = fct_mev (fac.codsoc, 'PRO', ' ')
  47.                      AND pro.codpro = facp.codpro
  48.         INNER JOIN tie cli ON cli.codsoc = fct_mev (fac.codsoc, 'TIE', 'CLI')
  49.                          AND cli.typtie = fac.typtie
  50.                          AND cli.sigtie = fac.sigtie
  51.         INNER JOIN tbl ON tbl.codsoc = fct_mev (cli.codsoc, 'TBL', '210')
  52.                      AND tbl.codtbl = '210'
  53.                      AND tbl.cletbl = cli.codzn5
  54.   WHERE fac.codsoc IN (fct_mev (?, 'EVE', ' '), fct_mev (?, 'EVE', ' '))
  55.     AND fac.achvte = 'V'
  56.     AND fac.typeve = 'FAC'
  57.     AND SUBSTR (fac.datliv, 0, 4) = ?
  58.     AND EXISTS (
  59.            SELECT NULL
  60.              FROM evp osp INNER JOIN pro os ON os.codsoc =
  61.                                                  fct_mev (osp.codsoc,
  62.                                                           'PRO',
  63.                                                           ' '
  64.                                                          )
  65.                                           AND os.codpro = osp.codpro
  66.                                           AND os.codzn3 = 'OS'
  67.             WHERE osp.codsoc = fct_mev (fac.codsoc, 'EVP', ' ')
  68.               AND osp.achvte = fac.achvte
  69.               AND osp.typeve = fac.typeve
  70.               AND osp.numeve = fac.numeve)
  71. GROUP BY tbl.lib1,
  72.         cli.nomtie,
  73.         SUBSTR (fac.datliv, 5, 2),
  74.         DECODE (facp.numevo, 0, facp.numeve, facp.numevo),
  75.         DECODE (pro.codzn3,
  76.                 'OS', DECODE (fct_valzod (75, 'PRO', pro.codpro, 128),
  77.                               'PROMO', 1,
  78.                               0
  79.                              ),
  80.                 0
  81.                ),
  82.         facp.prxuf,
  83.         facp.prxbrtfac,
  84.         facp.taurem1
  85. ORDER BY enseigne, nomtie, mois, cde, promo, ostotal


 
Mmm miam miam, comment c'est imbittable maintenant :love:

Message cité 1 fois
Message édité par MagicBuzz le 18-04-2008 à 12:43:18
n°1719832
Elmoricq
Modérateur
Posté le 18-04-2008 à 13:05:40  profilanswer
 

La version formatée de ta requête avec SquirrelSQL :

Code :
  1. SELECT
  2. tbl.lib1 enseigne,
  3. cli.nomtie,
  4. SUBSTR(fac.datliv, 5, 2) mois,
  5. decode(facp.numevo, 0, facp.numeve, facp.numevo) cde,
  6. ROUND(SUM(f_qtedip(facp.codsoc, facp.codpro, facp.coduni, 'PAL', facp.qtecde)), 2) cpal,
  7. SUM(DECODE(pro.codzn3, 'OS', facp.qtecde * facp.prxvdu, 0)) ctotal,
  8. ROUND(SUM(DECODE(pro.codzn3, 'OS', f_qtedip(facp.codsoc, facp.codpro, facp.coduni, 'PAL', facp.qtecde), 0)), 2) ospal,
  9. facp.prxuf ostotal,
  10. DECODE(pro.codzn3, 'OS', DECODE (fct_valzod (75, 'PRO', pro.codpro, 128 ), 'PROMO', 1, 0), 0) promo,
  11. facp.taurem1,
  12. facp.prxbrtfac
  13. FROM eve fac
  14. INNER JOIN lad l ON l.codsoc = fac.codsoc
  15. AND l.typtie = fac.typtie
  16. AND l.sigtie = fac.sigtie
  17. AND l.typadr = 'FAC'
  18. AND l.numadr = fac.numfil
  19. AND fac.sigtie <> '245205'
  20. AND l.sigadr <> '245205'
  21. INNER JOIN evp facp ON facp.codsoc = fac.codsoc
  22. AND facp.achvte = fac.achvte
  23. AND facp.typeve = fac.typeve
  24. AND facp.numeve = fac.numeve
  25. INNER JOIN pro ON pro.codsoc = fct_mev(fac.codsoc, 'PRO', ' ')
  26. AND pro.codpro = facp.codpro
  27. INNER JOIN tie cli ON cli.codsoc = fct_mev(fac.codsoc, 'TIE', 'CLI')
  28. AND cli.typtie = fac.typtie
  29. AND cli.sigtie = fac.sigtie
  30. INNER JOIN tbl ON tbl.codsoc = fct_mev(cli.codsoc, 'TBL', '210')
  31. AND tbl.codtbl = '210'
  32. AND tbl.cletbl = cli.codzn5
  33. WHERE fac.codsoc IN (fct_mev(?, 'EVE', ' '), fct_mev(?, 'EVE', ' '))
  34. AND fac.achvte = 'V'
  35. AND fac.typeve = 'FAC'
  36. AND SUBSTR(fac.datliv, 0, 4) = ?
  37. AND EXISTS
  38. (
  39.   SELECT
  40.   NULL
  41.   FROM evp osp
  42.   INNER JOIN pro os ON os.codsoc = fct_mev(osp.codsoc, 'PRO', ' ')
  43.   AND os.codpro = osp.codpro
  44.   AND os.codzn3 = 'OS'
  45.   WHERE osp.codsoc = fct_mev(fac.codsoc, 'EVP', ' ')
  46.   AND osp.achvte = fac.achvte
  47.   AND osp.typeve = fac.typeve
  48.   AND osp.numeve = fac.numeve
  49. )
  50. GROUP BY tbl.lib1,
  51. cli.nomtie,
  52. SUBSTR(fac.datliv, 5, 2),
  53. decode(facp.numevo, 0, facp.numeve, facp.numevo),
  54. DECODE (pro.codzn3, 'OS', DECODE(fct_valzod(75, 'PRO', pro.codpro, 128 ), 'PROMO', 1, 0), 0),
  55. facp.prxuf,
  56. facp.prxbrtfac,
  57. facp.taurem1
  58. ORDER BY enseigne, nomtie, mois, cde, promo, ostotal

n°1719852
pactole@
Posté le 18-04-2008 à 13:43:10  profilanswer
 

Elmoricq a écrit :

SquirrelSQL fait ça plutôt bien.
http://www.squirrelsql.org


merci  :jap:  

MagicBuzz a écrit :

ta touche tablulation marche pas ?
 
d'autant que j'ai toujours vu les formateurs ne faire que de la merde à partir du moment où on imbrique des requêtes et/ou on appelle des procédures stockées (je parle pas d'une requête imbriquée dans l'appel d'une ps...)
 
le truc t'as 25 lignes de 2 caractères, en plus généralement avec une indentation foireuse (genre le where qui ne retombe pas au niveau du FROM)
 
bref... 2 minutes de tabulations et retours chariots, ça n'a jamais fait de mal, et l'avantage c'est qu'une fois indentée, t'as compris à 95% la requête.


 

MagicBuzz a écrit :

Genre :
 
Ca, c'est ce que j'ai écrit. C'est relou, faut scroller un peu sur la droite, mais c'est lisible.
 
Mmm miam miam, comment c'est imbittable maintenant :love:


 
ça sera toujours moins imbitable qu'une requete étalée sur une ligne de log

n°1719854
MagicBuzz
Posté le 18-04-2008 à 13:45:51  profilanswer
 

Elmoricq a écrit :

La version formatée de ta requête avec SquirrelSQL :

Code :
  1. SELECT
  2. tbl.lib1 enseigne,
  3. cli.nomtie,
  4. SUBSTR(fac.datliv, 5, 2) mois,
  5. decode(facp.numevo, 0, facp.numeve, facp.numevo) cde,
  6. ROUND(SUM(f_qtedip(facp.codsoc, facp.codpro, facp.coduni, 'PAL', facp.qtecde)), 2) cpal,
  7. SUM(DECODE(pro.codzn3, 'OS', facp.qtecde * facp.prxvdu, 0)) ctotal,
  8. ROUND(SUM(DECODE(pro.codzn3, 'OS', f_qtedip(facp.codsoc, facp.codpro, facp.coduni, 'PAL', facp.qtecde), 0)), 2) ospal,
  9. facp.prxuf ostotal,
  10. DECODE(pro.codzn3, 'OS', DECODE (fct_valzod (75, 'PRO', pro.codpro, 128 ), 'PROMO', 1, 0), 0) promo,
  11. facp.taurem1,
  12. facp.prxbrtfac
  13. FROM eve fac
  14. INNER JOIN lad l ON l.codsoc = fac.codsoc
  15. AND l.typtie = fac.typtie
  16. AND l.sigtie = fac.sigtie
  17. AND l.typadr = 'FAC'
  18. AND l.numadr = fac.numfil
  19. AND fac.sigtie <> '245205'
  20. AND l.sigadr <> '245205'
  21. INNER JOIN evp facp ON facp.codsoc = fac.codsoc
  22. AND facp.achvte = fac.achvte
  23. AND facp.typeve = fac.typeve
  24. AND facp.numeve = fac.numeve
  25. INNER JOIN pro ON pro.codsoc = fct_mev(fac.codsoc, 'PRO', ' ')
  26. AND pro.codpro = facp.codpro
  27. INNER JOIN tie cli ON cli.codsoc = fct_mev(fac.codsoc, 'TIE', 'CLI')
  28. AND cli.typtie = fac.typtie
  29. AND cli.sigtie = fac.sigtie
  30. INNER JOIN tbl ON tbl.codsoc = fct_mev(cli.codsoc, 'TBL', '210')
  31. AND tbl.codtbl = '210'
  32. AND tbl.cletbl = cli.codzn5
  33. WHERE fac.codsoc IN (fct_mev(?, 'EVE', ' '), fct_mev(?, 'EVE', ' '))
  34. AND fac.achvte = 'V'
  35. AND fac.typeve = 'FAC'
  36. AND SUBSTR(fac.datliv, 0, 4) = ?
  37. AND EXISTS
  38. (
  39.   SELECT
  40.   NULL
  41.   FROM evp osp
  42.   INNER JOIN pro os ON os.codsoc = fct_mev(osp.codsoc, 'PRO', ' ')
  43.   AND os.codpro = osp.codpro
  44.   AND os.codzn3 = 'OS'
  45.   WHERE osp.codsoc = fct_mev(fac.codsoc, 'EVP', ' ')
  46.   AND osp.achvte = fac.achvte
  47.   AND osp.typeve = fac.typeve
  48.   AND osp.numeve = fac.numeve
  49. )
  50. GROUP BY tbl.lib1,
  51. cli.nomtie,
  52. SUBSTR(fac.datliv, 5, 2),
  53. decode(facp.numevo, 0, facp.numeve, facp.numevo),
  54. DECODE (pro.codzn3, 'OS', DECODE(fct_valzod(75, 'PRO', pro.codpro, 128 ), 'PROMO', 1, 0), 0),
  55. facp.prxuf,
  56. facp.prxbrtfac,
  57. facp.taurem1
  58. ORDER BY enseigne, nomtie, mois, cde, promo, ostotal



mouais, là effectivement ça reste correct.
je suis pas partisant de l'éclatement des "and" dans les clauses de jointure, mais c'est juste une affaire de goût. pour le reste effectivement il donne un code lisible

n°1719913
pactole@
Posté le 18-04-2008 à 14:49:04  profilanswer
 

il est pas mal cet editeur, je vais le préférer a Toad je pense, il parait largement moins lourd


Message édité par pactole@ le 18-04-2008 à 15:13:00

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  cherche editeur qui formate et indent des requetes sql

 

Sujets relatifs
Fusion de deux requetescherche tutos pour CSS
[Delphi]Cherche quelqu'un pour travailler sur GKModCherche des fous pour nouveau concept OS (base linux)
Cherche un indenteur polyvalent de mise en forme du codeQuikjob, cherche tuto
[C++]cherche log pour coder dans lequel on peut "zoomer" sur le texteDeux fois la même sous requête sous MySQL
[résolu] liens vers requetes SQL 
Plus de sujets relatifs à : cherche editeur qui formate et indent des requetes sql


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR