|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre habitué
![]() PoichOU Étudiant Inscription : juillet 2006 Messages : 296 ![]() |
Bonjour,
j'ai besoin d'aide pour une requête car je voudrais améliorer le temps d'affichage d'une page. Sur mon site internet j'ai une petite fonctionnalité qui me permet d'importer des fichiers xml contenant des factures (chaque fichier contient une ou plusieurs factures). Les fichiers xml ne sont pas toujours bien importés (problème de formattage ou autre), et peuvent être importés partiellement (cad certaines factures sont importées, d'autres non). Voici comment cela est modélisé (désolé pour l'image je n'avais pas de logiciel pour faire un mpd alors j'ai fait comme je pouvais) : J'ai importé 3 fichiers : - le 1er a 2 factures et il a été importé sans problème - le 2nd a 3 factures et il a été rejeté complément (le fichier xml était illisible) - le 3eme a 5 factures et 2 ont été intégrées et 3 rejetées La page dont je veux améliorer le temps d'affichage est une sorte de tableau de bord des importations qui affiche des infos sur les fichiers importés. Je voudrais faire une requête qui afficherait le résultat suivant : cad une ligne par erreur avec à chaque fois l'erreur rencontrée et le nombre de factures intégrées pour l'instant je fais ce traitement avec plusieurs requêtes et du traitement php mais je pense (je ne suis pas du tout spécialiste) que ça doit être faisable directement en sql (et donc améliorer le temps de traitement). Pourriez-vous m'aider ? Merci PoichOU PS : j'espère avoir été clair dans ma demande |
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() Inscription : août 2008 Messages : 1 271 ![]() |
Essaie avec ça, mais je n'ai pas testé, c'est donc peut être faux au niveau du nombre de lignes et de nberreur :
Code :
PS : oui c'est très clair ! |
||
|
|
00
|
|
|
#3 | ||
|
Membre habitué
![]() PoichOU Étudiant Inscription : juillet 2006 Messages : 296 ![]() |
merci beaucoup skuatamad pour ta réponse (rapide en plus !).
Ta requête fonctionne presque, il ne manque que la première ligne (le fichier ok). Mais c'est ma faute je n'ai pas précisé qu'en cas de succès il n'y a pas de ligne dans 'fichier_erreur'. je te file un script de création si ça peut aide (parce que faire la requête sans tester moi je dis respect )Code :
PoichOU |
||
|
|
00
|
|
|
#4 | ||
|
Membre Expert
![]() Inscription : août 2008 Messages : 1 271 ![]() |
Et comme çà ?
Code :
|
||
|
|
00
|
|
|
#5 |
|
Membre habitué
![]() PoichOU Étudiant Inscription : juillet 2006 Messages : 296 ![]() |
GENIAL !! et en plus sans BDD je dis respect !merci beaucoup pour le coup de main |
|
|
00
|
|
|
#6 |
|
Membre habitué
![]() PoichOU Étudiant Inscription : juillet 2006 Messages : 296 ![]() |
Erf j'ai fait une erreur, j'ai volontairement simplifié le modèle pour que mon exemple soit compréhensible et je suis passé à côté d'un truc !
En fait dans les fichiers xml qui sont intégrés il y a une facture par ligne et je note dans la table d'erreur la ligne ET la colonne qui posent problème. Et dans ma requête il me faut le nombre de facture en erreur et non pas le nombre d'erreurs par fichier. Tu vois ce que je veux dire ? |
|
|
00
|
|
|
#7 |
|
Membre habitué
![]() PoichOU Étudiant Inscription : juillet 2006 Messages : 296 ![]() |
j'ai refait le mdp pour etre plus clair :
en fait je peux avoir 2 lignes dans FICHIER_ERREUR pour une même facture ! du coup le résultat serait du genre : je suis peut être plus clair là. Tu penses que c'est faisable ? Merci PoichOU |
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() Inscription : août 2008 Messages : 1 271 ![]() |
Merci d'avoir précisé, s'il n'y a pas de soucis à utiliser DISTINCT dans une fonction analytique, alors :
Code :
count(DISTINCT fe.ligne) over (partition BY f.id) AS nberreur |
|
|
00
|
|
|
#9 |
|
Membre habitué
![]() PoichOU Étudiant Inscription : juillet 2006 Messages : 296 ![]() |
MERCI MERCI MERCI
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com