begin process at 2012 02 12 01:01:02
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive SQL

 > 

Archives

 > 

Problème avec une requête

 > 

Classer une table avant GroupBy


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Classer une table avant GroupBy

jeudi 26 janvier 2006 à 15:43:35 | Classer une table avant GroupBy

olid

Membre Club

Bonjour, la requete (ou plutot le bidouillage) ci-dessous fait un groupby apres la jointure

SELECT f.numFichier, adresse, taille, nomPublic, enConsultation, modifier,dateModification FROM fichier f, dossierfichier df, dossier d
            WHERE d.numDossier = '$numDossier'
            AND        d.numDossier = df.numDossier
            AND        df.numFichier = f.numFichier
            GROUP BY f.numFichier
            ORDER BY nomPublic

Mon probleme:
fichier(f) contient une liste de fichiers, et dossierfichier(df) contient une liste des modifications de ces fichiers (id du fichier, date de modif, id de l'intervenant).
Le but est de sortir une liste des fichiers avec les infos associées.
Mais, il recupere dans df la plus vieille ligne qui correspond à la premiere modification du fichier. Hors, je dois afficher la date de la "derniere" modif... Bref, il faudrait classer la jointure avant le groupby

Merci pour votre aide
----
Olie_ze_kat - www.olid.fr.st =(°o°)=
vendredi 27 janvier 2006 à 14:04:41 | Re : Classer une table avant GroupBy

Zart

Salut,

J'avais un ti soucis et je viens de voir le tiens...
Je croyais que c'était bidon mais en fait non.

Essai ça
SELECT f.numFichier, adresse, taille, nomPublic, enConsultation, modifier,dateModification FROM fichier f, dossierfichier df, dossier d
            WHERE d.numDossier = '$numDossier'
            AND        d.numDossier = df.numDossier
            AND        df.numFichier = f.numFichier
            GROUP BY f.numFichier
            ORDER BY dateModification ,nomPublic
lundi 30 janvier 2006 à 12:12:32 | Re : Classer une table avant GroupBy

olid

Membre Club
Non, çà, çà trie le resultat apres le groupby... moi, je dois trier avant le groupby

merci qd meme

Olivier D. alias ze kat  =(°o°)=
[ Lien ]
lundi 30 janvier 2006 à 13:27:09 | Re : Classer une table avant GroupBy

Zart

Hey je pense que j'ai trouvé, il suffit de faire une projection différente :

SELECT f.numFichier, adresse, taille, nomPublic, enConsultation, modifier,MAX(dateModification) as dateDerniereModification
FROM fichier f, dossierfichier df, dossier d

WHERE d.numDossier = '$numDossier'
AND d.numDossier = df.numDossier
AND df.numFichier = f.numFichier

GROUP BY f.numFichier

ORDER BY nomPublic

Je pense que ça doit rouler ?
lundi 30 janvier 2006 à 18:44:43 | Re : Classer une table avant GroupBy

olid

Membre Club
J'ai essayé, mais la commande Max() semble ne pas marcher sur des champs Date (format mySQL jj-jj-jj hh:hh:hh)

Je crois que le seul moyen d'en sortir, çà va etre de refaire leur appli en decomposant en plusieurs requetes... La table df est bizarre ; elle contient des references vers f et d pour, - en meme temps -, definir les fichiers dun dossier et aussi faire l'historique des modifs !!!

.oO(encore un soft fait par un tordu du ciboulo)

Olivier D. alias ze kat  =(°o°)=
[ Lien ]
mardi 31 janvier 2006 à 09:45:58 | Re : Classer une table avant GroupBy

Zart

Je sais comment tu peux faire....
En fait s'il ne connait pas le max des dates... tu n'as qu'à lui faire faire le max d'un nombre...
Tu fais un MAX d'une date formatté comme ceci :
MAX(DATE_FORMAT(date,'%Y%m%d%H%i%s%f))

Je pense que ça devrait le faire...
mardi 31 janvier 2006 à 16:38:21 | Re : Classer une table avant GroupBy

olid

Membre Club
Perdu... Le MAX() dans le SELECT s'applique au resultats APRES le groupby :o(( J'ai essayé sans succes un: GROUP BY f.numFichier HAVING dl.dateModification = (SELECT MAX(TODAY(dateModification) WHERE ...)) Zart, je te remercie pour ton obstination, mais je vais faire 3 SELECT séparés pour résoudre le pb... On a assez perdu de temps avec ce truc malfoutu ;op
lundi 6 février 2006 à 04:43:11 | Re : Classer une table avant GroupBy

Zlub

Membre Club



Salut,


je comprends pas trop ton emploi du Group By, perso j'aurais fait :


SELECT f.numFichier, adresse, taille, nomPublic, enConsultation, modifier, MAX(dateModification) as dateDerniereModification

FROM fichier f, dossierfichier df, dossier d

WHERE d.numDossier = '$numDossier'
AND d.numDossier = df.numDossier
AND df.numFichier = f.numFichier

ORDER BY nomPublic

GROUP BY f.numFichier, adresse, taille, nomPublic, enConsultation, modifie


Le max() d'une date fonctionne bien en MySQL.. le bug est donc ailleur..


++

Zlub
lundi 6 février 2006 à 04:44:28 | Re : Classer une table avant GroupBy

Zlub

Membre Club

Re Salut,


Oups erreur copier / coller  ;)


SELECT f.numFichier, adresse, taille, nomPublic, enConsultation, modifier, MAX(dateModification) as dateDerniereModification

FROM fichier f, dossierfichier df, dossier d

WHERE d.numDossier = '$numDossier'
AND d.numDossier = df.numDossier
AND df.numFichier = f.numFichier

GROUP BY f.numFichier, adresse, taille, nomPublic, enConsultation, modifier

ORDER BY nomPublic;


++

Zlub


Cette discussion est classée dans : fichier, numfichier, numdossier, df, groupby


Répondre à ce message

Sujets en rapport avec ce message

INSERT BULK FROM @VARIABLE [ par SebOfBorg ] Bonjour,J'essai de faire un script qui me permettrait de faire un insert bulk avec une variable.Le probleme est que l'analyseru de requete me sort une enregistrer le resultat d'une requete dans un fichier TXT [ par enrageur ] voila, j'aimerais en registrer le resultat d'une requete du type :SELECT * FROM TOTOdans un fichier txt. Je crois qu'il y a une commande pour cel a me Lot dts SQL server dans un excel [ par karn ] Bonjour, j'ai creer un lot qui exporte une vue dans un fichier excel, ca marche bien, le seul probleme est que lorsque que je le relance au lieu de m' Type fichier?? y en a?? [ par Fildomen ] Salutje veux avoir une colonne où le type est bit mais sa valeur change selon la présence d'un fichier( existant = true, sinon false), est-ce-possible utiliser like sur des types image (fichier) [ par Fildomen ] SalutEst-ce-qu'on peux utiliser la commande like sur des types fichier  ???YaoYao !!http://csharp.over-blog.com<IMG src="/imgs2/smile_tongue.gif connexion a une table de sql a partir d'un fichier aspx c#? [ par firas_tn ] Salut a tous c trés urgentcomment je peux connecter une table d'une base de donnée a partir d'un fichier aspx c# c a dire dans le code de cette page c Creer un fichier PDF à partir de plusieurs tables MySQL? [ par Sancho_tito ] Je developpe une application Web en php avec une base de données MySQL. Je voudrais savoir comment puis je faire pour creer un fichier PDF à partir de Comment exporter le résultat d'une requête dans un fichier ? [ par psykocrash ] Le titre dit tout... Ouvrir un fichier access depuis excel [ par Blaster13 ] Salut à tous,Dans la série question à 1 €...Quelle est la ligne de commande quie permet par exemple sur click d'un bouton d'ouvrir un fichier Access d Fichier Correspondante Prefixe numero de telephone/regions [ par karn ] Bonjour, je cherche un fichier qui regrouperais, le prefixe des numeros de telephones francais(01,02,03,04) avec les differentes regions(77,94,02). Au


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 5,210 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales