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

 


 Mot :   Pseudo :  
 
 Page :   1  2  3  4
Page Suivante
Auteur Sujet :

[résolu] Besoin d'aide pour écrire une requête SQL compliquée

n°1480844
MagicBuzz
Posté le 23-11-2006 à 16:53:02  profilanswer
 

Reprise du message précédent :
tu peux essayer. là je te laisse, j'ai aussi un travail et là j'ai un gros truc à faire pour demain, c'est pas gagné :D

mood
Publicité
Posté le 23-11-2006 à 16:53:02  profilanswer
 

n°1480848
rufo
Pas me confondre avec Lycos!
Posté le 23-11-2006 à 17:02:23  profilanswer
 

MagicBuzz a écrit :

tu peux essayer. là je te laisse, j'ai aussi un travail et là j'ai un gros truc à faire pour demain, c'est pas gagné :D


 
encore une fois, merci de ton aide. Je ne suis pas bredouille puisque j'ai une requête alternative à mes 3 miennes et 2 pistes à investiguer (table temporaire et comparaison php).
Et en prime, un modèle très générique qui me servira peut-être pour une autre appli, qui sait? Par conte, je suis pas très fan de ton premier modèle qui me  paraît encore plus compliqué que le mien...
 
Bon courage pour ton taf.

n°1481454
MagicBuzz
Posté le 24-11-2006 à 17:01:06  profilanswer
 

tiens, regarde...
 
au lieu de te prendre la tête avec ton machin, tu veux pas faire de jolies petites requêtes toutes bête dans un modèle tout simple comme celui-là ? :D
 


select msk.codpro,  
    pro.fampro, pro.sfapro, pro.ssfpro, pro.nompro,  
    msk.datmvt, msk.typosk, msk.codosk, msk.achvte, msk.typeve, msk.numeve,  
    decode(msk.codosk, 'ENTREE', msk.qteope, 'TRFENT', msk.qteope, 'INICPT', msk.qteope, 'INIT', msk.qteope, 'VREAVN', -1*msk.qteope, 0) "Entrées",  
    decode(msk.codosk, 'TRFSOR', msk.qteope, 'VLIVVN', msk.qteope, 0) "Réparés",  
    decode(msk.codosk, 'SORTIE', msk.qteope, 0) "Détruits",  
    msk.prxvte, msk.prxrev, tsc.prxtar,  
    ret.typtie, ret.sigtie, ret.refext,
    rettn.commen1, rettn.commen2, rettn.commen3, rettn.commen4,  
    ent.sigdep,  
    sum(faa.qtecde) afaa
from msk
inner join pro on pro.codsoc = msk.codsoc and pro.codpro = msk.codpro
inner join tsc on tsc.codsoc = pro.codsoc and tsc.codpro = pro.codpro and tsc.achvte = 'V'
inner join evp faa on faa.codsoc = pro.codsoc and faa.achvte = 'A' and faa.typeve = 'FAA' and faa.codpro = pro.codpro
left outer join msk ent on ent.codsoc = msk.codsoc and ent.codpro = msk.codpro and ent.datmvt = msk.datmvt and ent.heumvt = msk.heumvt and ent.codosk = 'TRFENT'
left outer join eve ret on ret.codsoc = msk.codsoc and ret.achvte = msk.achvte and ret.typeve = msk.typeve and ret.numeve = msk.numeve
left outer join evp retp on retp.codsoc = ret.codsoc and retp.achvte = ret.achvte and retp.typeve = ret.typeve and retp.numeve = ret.numeve and retp.numpos = msk.poseve
left outer join evt rettn on rettn.codsoc = retp.codsoc and rettn.achvte = retp.achvte and rettn.typeve = retp.typeve and rettn.numeve = retp.numeve and rettn.numpos = retp.numpos
where msk.codsoc = 2
and msk.sigdep = 'DPT3'
and msk.codosk in ('SORTIE', 'ENTREE', 'TRFSOR', 'TRFENT', 'INICPT', 'INIT', 'VREAVN', 'VLIVVN')
and msk.datmvt like '2006%'
and tsc.datdeb =
(
  select max(datdeb)
 from tsc tsc2
 where tsc2.codsoc = tsc.codsoc
 and tsc2.achvte = tsc.achvte
 and tsc2.codpro = tsc.codpro
 and tsc2.prxtar =
 (
   select max(prxtar)
  from tsc tsc3
  where tsc3.codsoc = tsc2.codsoc
  and tsc3.achvte = tsc2.achvte
  and tsc3.codpro = tsc2.codpro
 )
)
group by msk.codpro,  
    pro.fampro, pro.sfapro, pro.ssfpro, pro.nompro,  
    msk.datmvt, msk.typosk, msk.codosk, msk.achvte, msk.typeve, msk.numeve, msk.qteope, msk.prxvte, msk.prxrev,
    tsc.prxtar,
    ret.typtie, ret.sigtie, ret.refext,
    rettn.commen1, rettn.commen2, rettn.commen3, rettn.commen4,  
    ent.sigdep


 
(et en plus ça marche [:magicbuzz] )


Message édité par MagicBuzz le 24-11-2006 à 17:01:26
n°1481863
rufo
Pas me confondre avec Lycos!
Posté le 26-11-2006 à 12:28:47  profilanswer
 

et ça fait quoi? Parce que les tables ou noms de champs à 6-7 lettres sont pas très explicites...

n°1482161
MagicBuzz
Posté le 27-11-2006 à 11:23:20  profilanswer
 

Ca prends toutes les authorisations de retour SAV dans le dépôt DPT3.
Ca valorise la marchandise au prix maximum applicable (donc hors promotions).
Ca regarde ensuite où sont repartis ces produits (benne, relivraison au client, démarque, remise en vente), ainsi que la quantité totale des produits qui ont été facturés en achat.
 
Ca sert en fait à :
1/ Estimer le pourcentage de SAV sur chaque référence
2/ Estimer le coût réel des SAV sur chaque référence
3/ Estimer la performance du service de réparation
 
(truc qui n'a rien à voir avec ton problème en fait :D)

n°1482181
rufo
Pas me confondre avec Lycos!
Posté le 27-11-2006 à 11:43:53  profilanswer
 

oui, ça je m'en étais douté :)

n°1487015
rufo
Pas me confondre avec Lycos!
Posté le 06-12-2006 à 11:01:02  profilanswer
 

Bon, ça yest, j'ai fini pas résoudre mon pb de comparaison.
En fait, j'ai constaté que tous les mots-clés de composants d'une configuration qui possèdent plus d'un composant ont tous un de leur attribut qui s'appelle "Nom..." (ex : Nom lecteur = fd0).
Donc, j'ai codé une fonction php pour comparer 2 configurations :
- je charge les 2 configurations depuis la BD en essayant de détecter pour chaque composant s'il possède un attribut dont le nom est "Nom...". Si oui, alors je nomme le composant qui le possède avec la valeur de l'attribut.
- je cherche les mots-clés de composants que la conf2 a et que la conf1 n'a pas => tous les composants de la conf2 pour ces mots-clés sont donc en +. Du reste, à la suite de ça, j'en profite pour les virer de la conf2 (ça l'allège)
- je cherche les mots-clés de composants que la conf2 n'a pas et que la conf1 a => tous les composants de la conf1 pour ces mots-clés sont donc en -. Du reste, à la suite de ça, j'en profite pour les virer de la conf1 (ça l'allège aussi)
- enfin, il ne reste que les mots-clés de composants que les 2 confs ont en commun. Pour chaque mot-clé de composant, je regarde le nb de composants associés pour les 2 confs. Il y a 3 cas de figures :
1) les 2 nb sont égaux et valent 1. Je compare les attributs des 2 composants pour trouver ceux en +, - et <>,
2) les 2 nb sont égaux mais > 1. Pour chaque composant de conf2, je cherche à trouver un composant dans conf1 qui a le même nom, ensuite je compare les attributs. S'il n'y en a pas, je compare le composant à celui qui a le même indice dans la liste de conf1,
3) les 2 nb sont <>. Pour chaque composant de conf2, je cherche à trouver un composant dans conf1 qui a le même nom, ensuite je compare les attributs. S'il n'y en a pas, je compare le composant à celui qui a le même indice dans la liste de conf1 si l'indice existe, sinon :
        - si nb de conf 2 > nb de conf 1, alors le composant est en +
        - sinon, le composant est en -
 
Voilà. Après qq tests, tout semble marcher correctement :) En +, ça va vite.

n°1487084
MagicBuzz
Posté le 06-12-2006 à 11:54:34  profilanswer
 

c'est cool :)
 
c'est bien ce que je pensais, t'as dû passer par du code pour y arriver.
 
ceci dit, par PS t'aurait aussi pu le faire. mais bon, après faut voir l'intérêt. ici je pense que c'est assez limité.
 
par contre, tu pourrais en effet avoir besoin d'un PS si c'est pour faire un contrôle de cohérence.
 
genre "je remplace la config de l'utilisateur X par une config identique".
ça peut être judicieux de faire ce contrôle dans la base et non pas dans le code PHP, afin de centraliser les contrôles (si un jour tu décides de faire une seconde interface d'allimentation des données par exemple)

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
Résolu - Effacer des champs dans des tables à partir d'un select[RESOLU] PHP EXIF et retouche d'image
aide en c # sur une erreur CS01117[resolu] Probleme passage iframe --> include
Besoin d'une petite requette SQL[résolu] Prendre un nom de fichier + répertoire en macro pour excel
Aide En C++ Suite De Conway (Urgent!!!)[résolu...enfin presq]Choix multiple pour une propriété de type string
Authentification sans session. [Résolu] 
Plus de sujets relatifs à : [résolu] Besoin d'aide pour écrire une requête SQL compliquée


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