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

Langage SQL Discussion :

Problème de nombre de ligne retournée


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 189
    Points : 87
    Points
    87
    Par défaut Problème de nombre de ligne retournée
    Et bien encore moi, pour un nouveau problème, et oui je suis très vite dépassé en sql.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    strSql = "SELECT NumBeneficiaire, NomBeneficiaire, PrenomBeneficiaire, " & _
                     "AdresseBeneficiaire + CAST(CPBeneficiaire AS varchar(5)) + VilleBeneficiaire as ligne_adresse_Bene, " & _
                     "TelephoneBeneficiaire, Portablebeneficiaire, NumInt, NomInt, PrenomInt, VilleInt, TelFixeInt, TelPortInt " & _
                     "From BENEFICIAIRES, INTERVENANTE"
    Le probleme est que j'ai 15 enregistrements dans beneficiaires et 10 dans intervenante et en faisant ainsi, j'obtient pour mes chaque enregistrement de beneficiaires mes 1O enregistrements d'intervenante ce qui me fait plaind e doublon en fait.

    Ce que j'aimerais c'est simplement obtenir mes 15 lignes bénéficiares par exemple et ensuite mes 10 lignes intervenantes.

    Tout d'abord est ce possible, parceque je commence à me poser sérieusement la question.

    D'avance merci

    @++
    dubidon
    "Un jour j'y arriverais tout seul, si si je vous le jure "

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    Là, ce qui se passe, c'est que tu fais un produit cartésien de tes deux tables, d'où le nombre de lignes 15 * 10 que tu récupères.
    Pour faire ce que tu souhaites, il te faut passer par deux requêtes différentes.

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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 080
    Points : 30 803
    Points
    30 803
    Par défaut
    As-tu pris le temps de lire le cours SQL ?

    Avec les informations que tu donnes, il n'est pas possible de savoir si tu as besoin d'une UNION ou d'une JOINture..
    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.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 189
    Points : 87
    Points
    87
    Par défaut
    Ok c'est bien ce qu'il me semblait et çà m'arrange pas du tout. peut être aurais tu une idée de comment contourner mon problème ???

    En fait j'ai sur une même form en vb.net deux combobox correspondant chacune à une table et des labels qui évoluent en fonction de mes choix dans mes combobox.

    Jusqu'a présent j'utilisait des bindingsource pour relier mes composants visuels et qu'il puisse évoluer ensemble, mais là du coup je sais pas comment faire, je me retrouve complètement bloqué

    @++
    dubidon
    "Un jour j'y arriverais tout seul, si si je vous le jure "

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 189
    Points : 87
    Points
    87
    Par défaut
    ce qui est sur c'est que çà ne peut pas être une jointure puisque ce sont deux tables complètement indépendantes. Je n'ai donc pas de clé étrangères me permettant de faire une jointure

    @++
    dubidon
    "Un jour j'y arriverais tout seul, si si je vous le jure "

  6. #6
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    Là, effectivement, il faut un peu plus d'info sur les schémas des deux tables et sur la façon dont le contenu des deux combo doit évoluer l'une en fonction de l'autre.
    Difficile d'en dire plus avec si peu d'éléments...

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 189
    Points : 87
    Points
    87
    Par défaut
    Voici la description de mes deux tables:


    Beneficiaires
    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
     
    CREATE TABLE [dbo].[BENEFICIAIRES](
    	[NumBeneficiaire] [int] IDENTITY(1,1) NOT NULL,
    	[NomBeneficiaire] [varchar](50) COLLATE French_CI_AS NULL,
    	[PrenomBeneficiaire] [varchar](50) COLLATE French_CI_AS NULL,
    	[AdresseBeneficiaire] [varchar](50) COLLATE French_CI_AS NULL,
    	[CPBeneficiaire] [int] NULL,
    	[VilleBeneficiaire] [varchar](50) COLLATE French_CI_AS NULL,
    	[TelephoneBeneficiaire] [int] NULL,
    	[PortableBeneficiaire] [int] NULL,
    	[FrequenceBeneficiaire] [varchar](50) COLLATE French_CI_AS NULL,
    	[FacturationBeneficiaire] [varchar](50) COLLATE French_CI_AS NULL,
    	[DateContratBeneficiaire] [datetime] NULL,
    	[ObservationsBeneficiaire] [varchar](50) COLLATE French_CI_AS NULL,
    	[RefBesoinsBeneficiaire] [int] NULL,
     CONSTRAINT [PK_BENEFICIAIRES] PRIMARY KEY CLUSTERED 
    (
    	[NumBeneficiaire] ASC
    )WITH (PAD_INDEX  = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
    ) ON [PRIMARY]
    Intervenante

    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
     
    CREATE TABLE [dbo].[INTERVENANTE](
    	[NumInt] [int] IDENTITY(1,1) NOT NULL,
    	[NomInt] [varchar](50) COLLATE French_CI_AS NULL,
    	[PrenomInt] [varchar](50) COLLATE French_CI_AS NULL,
    	[NomJFInt] [varchar](50) COLLATE French_CI_AS NULL,
    	[AdresseInt] [varchar](50) COLLATE French_CI_AS NULL,
    	[CPInt] [int] NULL,
    	[VilleInt] [varchar](50) COLLATE French_CI_AS NULL,
    	[TelFixeInt] [int] NULL,
    	[TelPortInt] [int] NULL,
    	[SecuSocialeInt] [float] NULL,
    	[DateNaissInt] [datetime] NULL,
    	[LieuNaissInt] [varchar](50) COLLATE French_CI_AS NULL,
    	[DateEntrInt] [datetime] NULL,
    	[DateSortInt] [decimal](18, 0) NULL,
    	[ObsInt] [varchar](50) COLLATE French_CI_AS NULL,
     CONSTRAINT [PK_INTERVENANTE] PRIMARY KEY CLUSTERED 
    (
    	[NumInt] ASC
    )WITH (PAD_INDEX  = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
    ) ON [PRIMARY]

    Donc en fait le but de ma form est qu'une personne puisse choisir une intervenante pouvant aller chez une bénéficiaires.

    J'affiche dans dans ma form une combobox contenant le nom des bénéficiaires , avec des labels (prénom, adresse, tel) évoluant en fonction du nom sélectionnés dans ma combobox.
    Dans cette même form, j'ai une deuxième combobox contenant le nom des intervenantes et qui elle aussi fait évoluer des labels contenant adresse, tel ...

    Le but étant de remplir une troisième table intervention contenant le numéro de bénéficiaire, le nom de l'intervenante et quelques détails en plus

    J'espère être compréhensible dans mes explications

    merci pour l'aide que vous m'apportez

    @++
    dubidon
    "Un jour j'y arriverais tout seul, si si je vous le jure "

  8. #8
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Il faut une requête par Combobox...
    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.

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 189
    Points : 87
    Points
    87
    Par défaut
    désolé pour la réponse tardive et merci pour l'information, je vais regarder çà attentivement et tenter de le faire à l'aide de deux requètes

    @++
    dubidon
    "Un jour j'y arriverais tout seul, si si je vous le jure "

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 189
    Points : 87
    Points
    87
    Par défaut
    bon ben j'ai tenté de le faire avec des requetes, mais là j'obtiens des problèmes avec vb.net, impossible de faire la liaison de donnée sur le datasource, du cou j'ai posté une requête sur le forum vb.net.

    Mais je voulais savoir, si je fais un union, normalement, je devrais obtenir mes deux tables mais avec des champs a null pour les colonnes correspondant à l'autre table et inversement non ??


    @++
    dubidon

    ps: du cou j'ai bien réussi avec deux requêtes différentes, merci a vous pour votre aide
    "Un jour j'y arriverais tout seul, si si je vous le jure "

  11. #11
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    Oui, mais en termes de performances, c'est mieux de le faire avec la fonction coalsce (ou son équivalent sur le SGBDR que tu utilises).
    Regarde la règle n° 16 ici :
    optimisation des requêtes

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/04/2008, 11h16
  2. Réponses: 1
    Dernier message: 28/11/2007, 09h13
  3. Réponses: 6
    Dernier message: 09/11/2007, 19h33
  4. Limiter le nombre de lignes retournées
    Par Takusen dans le forum Requêtes
    Réponses: 4
    Dernier message: 05/11/2006, 23h58
  5. [JDBC] Nombre de lignes retournés
    Par raj dans le forum JDBC
    Réponses: 4
    Dernier message: 29/12/2005, 15h03

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