Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 10 sur 10
  1. #1
    Membre régulier
    Homme Profil pro
    agent de fisc
    Inscrit en
    juillet 2006
    Messages
    370
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : agent de fisc

    Informations forums :
    Inscription : juillet 2006
    Messages : 370
    Points : 72
    Points
    72

    Par défaut Affichage personnalisé dans une requête SQL

    salut a tout
    interbase,delphi7,quickrep
    agent(num,nom,prenom,poste_sup)
    poste_sup est le poste supérieure de l'agent
    est ce qu'il est possible avec une requette sql afficher la liste des agent s'achant que leur poste_sup contient un mot donnee
    ont a chef service comptabilité
    chef service personnel
    etc..
    ont aussi
    chef de brigade
    etc..
    alors si je r'entre chef service il m'affiche tout les chef service
    merci d'avance

  2. #2
    Candidat au titre de Membre du Club
    Homme Profil pro
    Développeur delphi junior
    Inscrit en
    février 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur delphi junior
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2012
    Messages : 39
    Points : 10
    Points
    10

    Par défaut

    Si je comprend bien tu veux afficher une liste des agents (num, nom, prénom) pour un poste_sup que tu connais ?

    le renseigne tu dans un champs ?

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    janvier 2009
    Messages
    451
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : janvier 2009
    Messages : 451
    Points : 692
    Points
    692

    Par défaut

    Bonjour,

    Il serait plus facile de répondre si tu nous donnes la requête que tu as faite.

    De plus, je n'ai pas compris clairement ce que devait contenir la colonne Post_Sup.

    Je pense d'ailleurs que ta table n'est pas normalisée et qu'il faudrait certainement exporter la colonne Post_Sup dans une autre table.

    Nous aurions
    Code :
    1
    2
    3
    Cadre(idCadre, Post_Sup)
    Agent(idAgent, #IdCadre, nom, prenom)
    Clé primaire = souligné, clé étrangère = # + italique

    Tu éviteras des redondances et répétitions avec des orthographes différentes.

    Pour lister des agents, il conviendra d'établir une requête avec jointure.

    Tout ceci sous réserve d'avoir compris ta demande

    A+

  4. #4
    Membre régulier
    Homme Profil pro
    agent de fisc
    Inscrit en
    juillet 2006
    Messages
    370
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : agent de fisc

    Informations forums :
    Inscription : juillet 2006
    Messages : 370
    Points : 72
    Points
    72

    Par défaut

    merci pour vos reponce peut etre que jais mal expliquer mon probleme
    ce que je veux ces afficher toute les agent qui ont dans leur champ poste_sup le mot chef service biensur avec une requette sql , ces un truc comme la fonction pos.
    merci d'avance

  5. #5
    Membre émérite Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    août 2008
    Messages
    1 527
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : août 2008
    Messages : 1 527
    Points : 920
    Points
    920

    Par défaut

    Citation Envoyé par kroma23 Voir le message
    merci pour vos reponce peut etre que jais mal expliquer mon probleme
    ce que je veux ces afficher toute les agent qui ont dans leur champ poste_sup le mot chef service biensur avec une requette sql , ces un truc comme la fonction pos.
    merci d'avance
    C'est assez simple de faire cette requête, mais tu n'as pas compris ce que @seabs à écrit.

    Si l'utilisateur pour ton champ Post_sup il a écrit :

    chef service
    chef services
    chefs services
    chef de service
    chef de services
    chefs de service
    chefs de services

    Tu va faire comment pour trouver tous les chefs de service ?

    Le mieux est d'avoir 2 tables comme te la suggéré @seabs.

    Montre nous ta requête déjà et ensuite on t'aidera à la faire fonctionner.

  6. #6
    Membre régulier
    Homme Profil pro
    agent de fisc
    Inscrit en
    juillet 2006
    Messages
    370
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : agent de fisc

    Informations forums :
    Inscription : juillet 2006
    Messages : 370
    Points : 72
    Points
    72

    Par défaut

    merci pour ta reponce BuzzLeclaire
    jais une seul table agent(num_agent,nom,prenom,poste_sup)
    le champs poste_sup peut contenir
    chef service comptabilité
    chef service personel
    et le champs poste_sup peut contenir aussi
    chef de brigade1
    chef de brigade2
    et ainsi de suite
    ce que je veux ces afficher toute les agents qui leur poste_sup contenir le mot chef service alors il m'affiche les chef service compatbilte et les chef service personnel mais il m'affiche pas les chef de brigarde1 et ainsi de suite.
    jais pas une requette car je ne ces pas comment faire ca mais jais un exemple avec une boucle.
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    with ibquery1 do
    begin
    close;
    sql.clear;
    sql.add('select * from agent');
    open;
    end;
     
    ibquery1.first;
    while not ibquery1.eof do
    begin
    if pos(ibquery1.fieldvalues['poste_sup'],chef service)=true then
    enregister cette enregistrement dans une autre table 
     
    ibquery1.next;
    end;
     
    afficher cette table



    merci d'avance.

  7. #7
    Rédacteur/Modérateur
    Avatar de SergioMaster
    Homme Profil pro Serge Girard
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    5 268
    Détails du profil
    Informations personnelles :
    Nom : Homme Serge Girard
    Âge : 58
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2007
    Messages : 5 268
    Points : 9 607
    Points
    9 607

    Par défaut

    Code :
    SELECT * FROM  AGENT WHERE POSTE_SUP STARTING WITH 'chef service'
    1 - votre analyse de base de données est à revoir selon les conseils de seabs
    2- il faudrait quand même un peu se renseigner sur le SQL
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein
    J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius
    Si votre seul outil est un marteau, vous aurez tendance a ne voir que des clous

  8. #8
    Membre régulier
    Homme Profil pro
    agent de fisc
    Inscrit en
    juillet 2006
    Messages
    370
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : agent de fisc

    Informations forums :
    Inscription : juillet 2006
    Messages : 370
    Points : 72
    Points
    72

    Par défaut

    merci bien sergio ces ca ce que je veux elle marche tres bien , svp jais une autre question:
    si je veux utiliser un parametre dans cette requette jais essai comme ca mais ca ne marche pas
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    with ibquery1 do
    begin
    close;
    sql.clear;
    sql.add('SELECT * FROM  agent WHERE POSTE_SUP STARTING WITH '':poste''');
    parambyname('poste').asstring:=edit1.text;
    open;
    end;
    merci d'avance .

  9. #9
    Modérateur
    Avatar de Cl@udius
    Homme Profil pro Claude Renouleaud
    Développeur informatique
    Inscrit en
    février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Nom : Homme Claude Renouleaud
    Âge : 51
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : février 2006
    Messages : 4 878
    Points : 8 958
    Points
    8 958

    Par défaut

    Salut
    Code :
    sql.add('SELECT * FROM  agent WHERE POSTE_SUP STARTING WITH :poste');
    Les apostrophes me semblent superflus.

    @+ Claudius
    A la question technique que par MP/MV tu formuleras, la réponse aux oubliettes finira.

  10. #10
    Candidat au titre de Membre du Club
    Homme Profil pro
    Développeur delphi junior
    Inscrit en
    février 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur delphi junior
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2012
    Messages : 39
    Points : 10
    Points
    10

    Par défaut

    posté par Cl@udius
    Salut

    Code :
    sql.add('SELECT * FROM  agent WHERE POSTE_SUP STARTING WITH :poste');
    Les apostrophes me semblent superflus.
    Effectivement Cl@udius tu a raison. Si le paramètre est configuré en string les apostrophes sont superflus.

    Dans la propriété params de delphi tu paramètre ton :poste comme suit :
    DataType : ftString
    Name tu touche pas c'est le nom après le ' : '
    ParamType : ptInput

    Comme ça cela devrai fonctionner

    Un pitit exemple :
    Code :
    1
    2
    3
    4
    5
    SELECT VENTE.COM_CODE AS cle, COMMERCIAUX.COM_NOM, COMMERCIAUX.COM_PRENOM, VEN_DATE, CLI_CODE, VEN_PRIX
    FROM COMMERCIAUX LEFT JOIN VENTE ON COMMERCIAUX.COM_CODE = VENTE.COM_CODE
    WHERE (COMMERCIAUX.COM_CODE BETWEEN :comdebut AND :comfin)
    AND (VEN_DATE BETWEEN :min AND :max)
    GROUP BY VENTE.COM_CODE, COM_NOM, COM_PRENOM, VEN_DATE, CLI_CODE, VEN_PRIX
    mes :comdebut et :comfin sont déclaré en ftString et comme tu peux le voir pas besoin des apostrophes
    mes :min et :max sont déclaré en ftDateTime
    tous les 4 en ptInput
    EDIT : pour assigner le param tu fait :
    Code :
    FormEditionComm.Query1.ParamByName('min').AsString:= FormEditionComm.EditBtnChoixEnreg1.Text;
    j'espère que ton problème est résolu

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •