IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

[Requête]Problème avec ORDER BY NZ


Sujet :

C++Builder

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    787
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 787
    Points : 276
    Points
    276
    Par défaut [Requête]Problème avec ORDER BY NZ
    Bonjour à tous.
    Je travaille avec BCB6 et Access 2003.
    Sous BCB, je souhaites faire le tri suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
            ImprimeListeClients->Query1->SQL->Clear();
            ImprimeListeClients->Query1->SQL->Add("SELECT * FROM TClient ORDER BY NZ('NomHomme','NomFemme')");
            ImprimeListeClients->Query1->Open();
    Mais ça plante il me dit fonction 'NZ' non définie.
    Je précise que cette requête fonctionne sous Access.
    Et sous BCB, si je fait le tri simple suivant, ça fonctionne également :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
            ImprimeListeClients->Query1->SQL->Clear();
            ImprimeListeClients->Query1->SQL->Add("SELECT * FROM TClient ORDER BY NomHomme");
            ImprimeListeClients->Query1->Open();
    Avez-vous une idée sur la syntaxe?

    D'avance, Merci

  2. #2
    Membre expérimenté
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Points : 1 427
    Points
    1 427
    Par défaut
    A première vue, NZ est une fonction propre à Access (l'aide a l'air de le confirmer).
    C'est donc normal que ta requete ne fonctionne pas dans ton code.
    Par contre, vue que je n'arrive pas à voir ce que tu cherches à faire, j'ai dû mal à te donner une solution de rechange
    + + +

  3. #3
    Membre habitué
    Inscrit en
    Octobre 2002
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Points : 152
    Points
    152
    Par défaut
    A mon avis, ce n'est pas parceque ta requête fonctionne côté Access qu'elle est correcte sous BCB. En effet, tout dépend du pilote que tu utilises (JET4) et si cette fonction n'est pas implentée par le pilote, tu n'auras pas de résultat (c'est ce qui se produit).

    Cela dit, je n'ai jamais utilisé NZ, et honnêtement je viens de découvrir cette fonction, (qui retournerai "" et non null?). Du coup, tu veux faire quoi exactement par l'utilisation de cette fonction ?

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    787
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 787
    Points : 276
    Points
    276
    Par défaut
    Bonjour à vous et merci pour votre aide !

    Voilà mon problème est simple mais cependant je patine sec..
    J'ai une table TClient Access 2003.
    J'ai 2 champs dans la table pour faire simple (en plus de l'id bien entendu) : NomHomme et NomFemme.
    Je dois afficher le listing client par ordre alphabétique.
    Je fait donc la requête suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM TClient ORDER BY NomHomme
    Ca fonctionne bien quand NomHomme est renseigné. Mais pour plusieurs fiches, j'ai un nom de femme et pas d'homme.
    Ca m'affiche donc d'abord tous les "NomHomme" qui sont en blancs (mais où le tri sur NomFemme est fait n'importe comment) et ensuite les "NomHomme" par ordre alphabétique.
    Je souhaiterais donc faire le tri suivant :
    SELECT * FROM TClient ORDER BY NomHomme ET SI NomHomme='', ALORS TRI SUR NomFemme
    Mais je ne connaissais pas la syntaxe SQL pour cela...
    On viens de me la donner du côté du forum SQL...
    J'utilise le pilote ODBC Access
    Avez-vous une idée pour régler mon petit soucis?
    Merci d'avance,

  5. #5
    Membre habitué
    Inscrit en
    Octobre 2002
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Points : 152
    Points
    152
    Par défaut
    J'ai une idée mais je n'ai pas le temps de la tester (il est 21h46 chez moi ).

    Ca ne marche pas si tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select * from TClient where Home <> '' AND Femme <>'' ORDER BY Home, Femme;
    Dans le genre ???

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    787
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 787
    Points : 276
    Points
    276
    Par défaut
    En fait, j'ai fait ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Select * from TClient where ORDER BY Homme, Femme;
    Tout simplement....

    Merci à vous tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec ORDER BY et champ de type "text"
    Par mouchkar dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 04/12/2006, 14h38
  2. [MySQL] problème avec ORDER BY _ DESC avec des flottants
    Par Hayabusa dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 25/08/2006, 00h00
  3. problème avec order by et union
    Par ghostdog dans le forum Langage SQL
    Réponses: 8
    Dernier message: 23/05/2006, 09h54
  4. [Requête] Problème avec Distinct
    Par Gamleur84 dans le forum Langage SQL
    Réponses: 9
    Dernier message: 04/02/2006, 01h40
  5. [Requête] Problème avec fonction "DATE_FORMAT()"
    Par sekiryou dans le forum Requêtes
    Réponses: 4
    Dernier message: 11/01/2005, 21h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo