Code SQL ?
Fermé
Donnlaur
-
8 mai 2004 à 07:08
Fu Xuen Messages postés 3642 Date d'inscription jeudi 24 avril 2003 Statut Contributeur Dernière intervention 11 septembre 2005 - 10 mai 2004 à 19:52
Fu Xuen Messages postés 3642 Date d'inscription jeudi 24 avril 2003 Statut Contributeur Dernière intervention 11 septembre 2005 - 10 mai 2004 à 19:52
A voir également:
- Code SQL ?
- Code asci - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code activation windows 10 - Guide
- Code gta 4 ps4 - Guide
5 réponses
grofwa
Messages postés
440
Date d'inscription
jeudi 24 juillet 2003
Statut
Membre
Dernière intervention
21 juillet 2006
479
8 mai 2004 à 10:28
8 mai 2004 à 10:28
Salut,
Si tu utilises Oracle, tu peux utiliser le DECODE et combiner avec des SIGN pour déterminer le plus gran des trois champs.
En MYSQL, tu peux utiliser la fonction GREATEST() pour faire des comparaisons entre tes champs.
Essaie et si ca marche pas, fais-moi signe !
michael.
Ne vous souciez pas de n'être pas remarqué ; cherchez
plutôt à faire quelque chose de remarquable [Confucius]
Si tu utilises Oracle, tu peux utiliser le DECODE et combiner avec des SIGN pour déterminer le plus gran des trois champs.
En MYSQL, tu peux utiliser la fonction GREATEST() pour faire des comparaisons entre tes champs.
Essaie et si ca marche pas, fais-moi signe !
michael.
Ne vous souciez pas de n'être pas remarqué ; cherchez
plutôt à faire quelque chose de remarquable [Confucius]
Fu Xuen
Messages postés
3642
Date d'inscription
jeudi 24 avril 2003
Statut
Contributeur
Dernière intervention
11 septembre 2005
305
8 mai 2004 à 12:10
8 mai 2004 à 12:10
Salut,
Plus généralement, c'est possible en SQL quelquesoit le SGBD. Il faut faire une sous-requête :
-= Fu Xuen =-
Plus généralement, c'est possible en SQL quelquesoit le SGBD. Il faut faire une sous-requête :
SELECT prenom, nom, (SELECT min(t.time) FROM table t WHERE t.prenom = prenom AND t.nom = nom) AS chrono FROM table ORDER BY chrono
-= Fu Xuen =-
grofwa
Messages postés
440
Date d'inscription
jeudi 24 juillet 2003
Statut
Membre
Dernière intervention
21 juillet 2006
479
8 mai 2004 à 20:56
8 mai 2004 à 20:56
Pas d'accord avec toi.
1. Tu ne prends pas le meilleur des trois temps qui se trouvent sur une ligne.
2. Une sous-requete telle que tu l'écris ne fonctionne pas avec tous les SGBD (notamment les versions 7 d'Oracle...)
Ne vous souciez pas de n'être pas remarqué ; cherchez
plutôt à faire quelque chose de remarquable [Confucius]
1. Tu ne prends pas le meilleur des trois temps qui se trouvent sur une ligne.
2. Une sous-requete telle que tu l'écris ne fonctionne pas avec tous les SGBD (notamment les versions 7 d'Oracle...)
Ne vous souciez pas de n'être pas remarqué ; cherchez
plutôt à faire quelque chose de remarquable [Confucius]
Fu Xuen
Messages postés
3642
Date d'inscription
jeudi 24 avril 2003
Statut
Contributeur
Dernière intervention
11 septembre 2005
305
9 mai 2004 à 01:47
9 mai 2004 à 01:47
C'est vrai, je suis complètement à côté de la plaque :). Je n'avais pas bien lu...
-= Fu Xuen =-
-= Fu Xuen =-
je pense plutot que tu devrais remplacer "min" par "max" si tu veux obtenir le meilleur temps.
SELECT
nom,
prenom,
(SELECT max(t.time) FROM table t WHERE t.prenom = prenom AND t.nom = nom) AS chrono
FROM
table
ORDER BY
chrono
SELECT
nom,
prenom,
(SELECT max(t.time) FROM table t WHERE t.prenom = prenom AND t.nom = nom) AS chrono
FROM
table
ORDER BY
chrono
Fu Xuen
Messages postés
3642
Date d'inscription
jeudi 24 avril 2003
Statut
Contributeur
Dernière intervention
11 septembre 2005
305
8 mai 2004 à 14:17
8 mai 2004 à 14:17
D'après les réponses attendues, il semblerait que ce soit le temps le plus court, non ?
-= Fu Xuen =-
-= Fu Xuen =-
fred
>
Fu Xuen
Messages postés
3642
Date d'inscription
jeudi 24 avril 2003
Statut
Contributeur
Dernière intervention
11 septembre 2005
8 mai 2004 à 14:52
8 mai 2004 à 14:52
peut etre que oui. mais je pense que c'est au concerné de trancher.
@+
@+
Bonjour à tout le monde et merci déjà pour vos réponses.
Dans le code présenté par 'Fu Xuen' je n'ai pas une liste avec
le temps le plus petit par ligne mais le temps le plus petit sur
toute la base de donnée. Ce qui veut dire que j'ai toujours le même temps sur tous les champs. Moi ce que j'aimerais c'est avoir par ligne le temps le plus petit pour le record.
Une petite précision c'est que j'utilise pour l'instant InterBase6.
Merci Donnlaur.
Dans le code présenté par 'Fu Xuen' je n'ai pas une liste avec
le temps le plus petit par ligne mais le temps le plus petit sur
toute la base de donnée. Ce qui veut dire que j'ai toujours le même temps sur tous les champs. Moi ce que j'aimerais c'est avoir par ligne le temps le plus petit pour le record.
Une petite précision c'est que j'utilise pour l'instant InterBase6.
Merci Donnlaur.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
je dois dire qu'il y a un pb serieux de conception avec ta table. en effet SQL n'etant pas un language procedural il est pratiquement impossible de sortir le meilleur des trois temps de ta table si chaque temps est sur sa colonne grace à SQL seul. je te conseille de les (les temps) inserrer en ligne. au mieux regarder si Interbase n'offre pas les possibilités du procédural sur des données extraites dans une bd.
@+
@+
Fu Xuen
Messages postés
3642
Date d'inscription
jeudi 24 avril 2003
Statut
Contributeur
Dernière intervention
11 septembre 2005
305
10 mai 2004 à 19:52
10 mai 2004 à 19:52
C'est vrai a priori et je m'y suis d'ailleurs fourvoyé. Mais je suppose qu'il s'agit ici d'un cas d'école ;).
-= Fu Xuen =-
-= Fu Xuen =-
10 mai 2004 à 08:09
Malheureusement pour moi je n'arrive pas à trouver le code dont j'ai besoin et c'est pour cela que je reprends contact avec vous.
J'avais oublié de précisé avant que j'utilise Interbase6 et je ne vois pas ou je peux faire des comporaisons avec dans colonnes.
Voilà, si vous avez une solution je suis preneur.
Merci.