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

Développement SQL Server Discussion :

Filtrage avec SQL


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Mai 2008
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 89
    Par défaut Filtrage avec SQL
    Salutations
    bon voila , j'aimerais transformer ce code qui est en Delphi en langage sql
    le problème c'est que je suis nouveau et débutant dans le langage sql
    c'est un programme de recherche d'enregistrement "recherche d'une personne X qui est dans TABLE 1 dans la TABLE 2 et la mettre dans la TABLE 3"
    et comme critère de recherche il y a le nom , le prénom, date de naissance ;et j'aimerais que vous m'aidiez

    j'aimerais bien savoir comment mettre la commande "LIKE" comme critère de recherche
    merci
    voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    begin
             mdd.TABLE1.first;
             mdd.TABLE1.edit;
             while not mdd.TABLE1.Eof do
            {2} begin
     
     
                    mdd.TABLE2.edit;
                    mdd.TABLE2.first;
     
                    while not mdd.TABLE2.Eof do
                    {3}begin
                          //   mdd.TABLE3.Edit;
                             if ((mdd.TABLE2Date_naiss.Text=mdd.TABLE1date_naissance.Text)and
                              (mdd.TABLE2nom.Text=mdd.TABLE1nom.Text)and
                              (mdd.TABLE2Prenom.Text=mdd.TABLE1prenom.Text))
     
                               then
                                {4}begin
                                          mdd.TABLE3.Edit;
                                          mdd.TABLE3.Insert;
                                          mdd.TABLE3NUM.text:=(mdd.TABLE2NUM.text+mdd.TABLE2Code_DECISION.text);
     
                                          mdd.TABLE3nom.Text:=mdd.TABLE2nom.Text;
                                          mdd.TABLE3prenom.Text:=mdd.TABLE2Prenom.Text;
                                          mdd.TABLE3Date_naiss.Text:=mdd.TABLE2Date_naiss.Text;
                                          mdd.TABLE3prenom_pere.Text:=mdd.TABLE2prenom_pere.Text;
                                          mdd.TABLE3nom_mere.Text:=mdd.TABLE2Nom_mere.Text;
                                          mdd.TABLE3prenom_mere.Text:=mdd.TABLE2Prenom_mere.Text;
     
     
                                          mdd.TABLE3.Post;
                                          mdd.TABLE3.Next;
                                {4}end;
                                         mdd.TABLE2.Next;
                      {3}end;
                 mdd.TABLE1.Next;
     
     
            {2}end ;
     
     
    {1} end;
    merci

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 136
    Par défaut
    Tu connais mal le SQL mais la plupart des personnes qui développent en SQL comprennent mal (ou pas) Delphi ou Pascal.
    Pourrais-tu donner la structure de tes tables, un exemple de données, le résultat attendu et les requêtes que tu as déjà essayées en précisant ce qui te bloque ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre actif
    Inscrit en
    Mai 2008
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 89
    Par défaut
    mon problème c'est que je veux traduire le code Delphi en sql

    je veux savoir les personnes enregistrer dans la TABLE 1 indiquées par leurs nom,prenom,date naissance se trouvent dans la TABLE 2, et si il en a je le met dans la table 3

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 136
    Par défaut
    Quelle est la structure de la table 1 ?
    Quelle est la structure de la table 2 ?
    Quelle est la structure de la table 3 ?

    Quelles sont les colonnes comparées entre la table 1 et la table 2 ?
    Quelles sont les colonnes de la table 1 qui sont reprises dans la table 3 ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2003
    Messages : 733
    Billets dans le blog
    8
    Par défaut
    D'après ce que j'ai compris de ton code Delphi, étant moi même Expert Delphi, ton code écrit en Pascal, traduisant un traitement procédurale itératif, peut aisément être réécrit en langage ensembliste SQL, comme indiqué ci-dessous :
    Ceci dit , il reste beaucoup de questions en suspends et il faut absolument répondre aux interrogations et questions pertinentes ci-dessus posées par al1_24.
    Sans cela, toute réponse ne peut être qu'à titre indicatif, voire même hasardeuse et erronée !

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    INSERT INTO dbo.TABLE3
      (NUM, nom, prenom, Date_naiss, prenom_pere, nom_mere, prenom_mere) 
      SELECT (TABLE2.NUM + TABLE2.Code_DECISION), TABLE2.nom, TABLE2.prenom, TABLE2.Date_naiss, TABLE2.prenom_pere, TABLE2.nom_mere, TABLE2.prenom_mere
    FROM dbo.TABLE1  
    INNER JOIN dbo.TABLE2 
       ON   TABLE2.Date_naiss = TABLE1.date_naissance
       AND  TABLE2.nom = TABLE1.nom 
       AND  TABLE2.prenom = TABLE1.prenom;

    A+

  6. #6
    Membre actif
    Inscrit en
    Mai 2008
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 89
    Par défaut
    table 1 = nom,prenom,date naissance,prénom_père, nom_mère, prénom_mère
    table 2 = nom,prenom,date naissance
    table 3 = nom,prenom,date naissance

    je vous explique:

    les colonnes comparées entre la table 1 et la table 2 sont : nom,prénom,date naissance ( critère de recherche)
    les colonnes de la table 1 qui sont reprises dans la table 3 sont : nom, prénom, Date naissance, prénom_père, nom_mère, prénom_mère


    le but on filtre la TABLE 1 dans la TABLE 2

    on prend le premier enregistrement (personne)de la TABLE 1 et on le filtre dans la TABLE 2
    si cet enregistrement se trouve dans LA TABLE 2 c.a.d, il y a une personne qui porte le même nom et prénom et date naissance ou bien presque (la commande LIKE %) dans la TABLE 2 alors on le met dans la TABLE 3 et cela pour
    tout les enregistrements (personnes ) saisies dans la TABLE 1


    merci et merci pour vos efforts

  7. #7
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 127
    Par défaut Par curiosité
    Par curiosité, je suis pas un spécialiste Delphi (ni SQL)
    Mais
    Pourquoi le Table1.edit en début de boucle
    alors que le but est de parcourir tous les enregistrements
    d'ailleurs l'instruction next réalise un cancel de cet mise en édition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    begin
             mdd.TABLE1.first;
             mdd.TABLE1.edit;
             while not mdd.TABLE1.Eof do
            {2} begin
     
     
                     //traitement              
     
                 mdd.TABLE1.Next;
     
     
            {2}end ;
     
     
    {1} end;
    merci[/QUOTE]

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

Discussions similaires

  1. Filtrage avec datetimepiker (requête SQL)
    Par louay02 dans le forum Bases de données
    Réponses: 3
    Dernier message: 09/04/2011, 11h01
  2. listage de triggers/sequences avec sql plus
    Par stross dans le forum Oracle
    Réponses: 52
    Dernier message: 20/04/2004, 15h41
  3. [SGBD] Pour moyenne base avec SQL ?
    Par PyRoFlo dans le forum Bases de données
    Réponses: 10
    Dernier message: 13/03/2004, 18h54
  4. Delete on cascade avec SQL server
    Par fadoua dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 14/01/2004, 11h02
  5. Déployer une appli avec SQL SERVER
    Par tiboleo dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 15/10/2003, 14h29

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