Précédent   Forum du club des développeurs et IT Pro > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 07/01/2013, 17h35   #1
Nuks1304
Invité régulier
 
Homme
Webdesigner
Inscription : décembre 2012
Messages : 21
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Suisse

Informations professionnelles :
Activité : Webdesigner

Informations forums :
Inscription : décembre 2012
Messages : 21
Points : 7
Points : 7
Par défaut Petit souci avec DISTINCT sur deux colonnes

Bonjour j’ai un petit souci…

Je m’explique j’ai une table [Commandes] ou il y a plusieurs colonnes...

Ce que je voudrai faire c’est trier les doublons avec un DISTINCT.

Voilà ma requête, si je fais :

Code :
SELECT DISTINCT * FROM Commandes WHERE NoClient = '" + Session("ClNoID") + "' ORDER BY DateCommande DESC
Il me trie un ou 2 doublons mais il me reste un champ qui en a aussi du coup j’aimerai le filtrer aussi avec DISTINCT

Mais si j’essais de faire :

Code :
SELECT DISTINCT NoCommande, Couleur FROM Commandes WHERE NoClient = '" + Session("ClNoID") + "' ORDER BY DateCommande DESC
Bha j’ai une belle erreur 500 du serveur

Pourriez-vous m’aider svp, merci pour votre aide.

Cordialement
Emilio
Nuks1304 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2013, 17h42   #2
Waldar
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 6 278
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 35
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : septembre 2008
Messages : 6 278
Points : 13 566
Points : 13 566
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Dans la seconde requête, vous ramenez deux colonnes mais vous triez sur une colonne qui n'est pas retournée.
L'utilisation de distinct implique que la colonne de tri doit apparaître dans le résultat.
Supprimez simplement le ORDER BY dans un premier temps.
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2013, 18h37   #3
Nuks1304
Invité régulier
 
Homme
Webdesigner
Inscription : décembre 2012
Messages : 21
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Suisse

Informations professionnelles :
Activité : Webdesigner

Informations forums :
Inscription : décembre 2012
Messages : 21
Points : 7
Points : 7
Bonsoir merci pour votre réponse la je viens d'essayer sans le ORDER BY

mais même résultat

Code :
SELECT DISTINCT NoCommande, Couleur FROM Commandes WHERE NoClient = '" + Session("ClNoID") + "'


je ne connais pas encore très bien SQL, pouvez-vous me faire un exemple avec mon code svp ?

Citation:
Envoyé par Waldar Voir le message
Dans la seconde requête, vous ramenez deux colonnes mais vous triez sur une colonne qui n'est pas retournée.
L'utilisation de distinct implique que la colonne de tri doit apparaître dans le résultat.
Supprimez simplement le ORDER BY dans un premier temps.
Mais comment faire pour le faire apparaître dans le résultat ?
Nuks1304 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2013, 09h04   #4
Nuks1304
Invité régulier
 
Homme
Webdesigner
Inscription : décembre 2012
Messages : 21
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Suisse

Informations professionnelles :
Activité : Webdesigner

Informations forums :
Inscription : décembre 2012
Messages : 21
Points : 7
Points : 7
Bonjour

Je viens d’essayer de faire un test avec le moins de code possible mais impossible j’ai toujours cette erreur je ne vois vraiment pas d’où cela peut venir

J’ai créé une base de données de test avec un style de donnée identique mais toujours sans succès…

La je sais plus ou donner de la tête

celle la fonctionne a moitié car si j'ai 2 colonnes avec des doublons c'est foutu
Code :
SELECT DISTINCT * FROM TABLE
….

celle la impossible de la faire fonctionner
Code :
SELECT DISTINCT ID, Couleur FROM Commandes WHERE Client = 'Moi'
….

Merci de me donner un coup de pouce

PS: Pourtant dans tous les sites de tuto c’est pareil la syntaxe mais d'ou vient l'erreur !? Pourquoi il n'accepte pas celle la non plus
Code :
SELECT DISTINCT ID, Couleur FROM Commandes
!?
Nuks1304 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2013, 10h32   #5
asmduty
Membre Expert
 
Homme Tony
Développeur .NET
Inscription : novembre 2010
Messages : 778
Détails du profil
Informations personnelles :
Nom : Homme Tony
Âge : 23
Localisation : France, Mayenne (Pays de la Loire)

Informations professionnelles :
Activité : Développeur .NET

Informations forums :
Inscription : novembre 2010
Messages : 778
Points : 1 285
Points : 1 285
Bonjour,

D'abord une remarque et une question :

Avec un jeu d'essai :
Citation:
Nom/Prenom
John/Truite
John/Truite
John/Poney
Jacques/Poney
Jacques/Truite
Le distinct * doit normalement ramener tout sauf une ligne :
Citation:
Nom/Prenom
John/Truite
John/Poney
Jacques/Poney
Jacques/Truite
Est-ce que c'est bien ce que vous tentez-de faire ?

Si oui, avez vous testé, à tout hasard, d'entourer vos mots clés avec des parenthèses dans ce style :
Code :
SELECT DISTINCT (ID, Couleur)
Je ne sais pas quel est votre SGBD, mais j'ai souvenir d'avoir eu à écrire ça de cette manière sur un SGBD.
__________________
Le Porc est un loup pour le Porc.
asmduty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2013, 14h28   #6
Nuks1304
Invité régulier
 
Homme
Webdesigner
Inscription : décembre 2012
Messages : 21
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Suisse

Informations professionnelles :
Activité : Webdesigner

Informations forums :
Inscription : décembre 2012
Messages : 21
Points : 7
Points : 7
Bonjour je viens de refaire un test j’ai supprimé toute les données de ma table puis réinjecté des données et la comme par miracle ça fonctionne …

Il devait y avoir un souci dans les champs

Enfin bon merci pour votre aide quand même
Nuks1304 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 11h02.


 
 
 
 
Partenaires

Hébergement Web