BESOIN DAIDE sur ue requete sql svp :cry: - Windows & Software
Marsh Posté le 25-04-2002 à 11:25:45
brunocremer a écrit a écrit : donc voila ma requete sql, il s'agit d'une BD contenant l'annuaire si on veut. je dois filtrer les entreprises (ce qui est fait dans cette requete, les particuliers n'ayant pas de rubrique). ensuite comme une entreprise peut avoir deux noms differents a la meme adresse, pour eviter ces doublons il faudrait que j'inclue un passage disant " si la rue et le numero sont les memes que un enregistrement précédant, on ne prends pas" pouvez vous m'aider ? SELECT DISTINCT [nom], [rue], [numero] FROM welkenraedt WHERE rubrique<>""; |
Marsh Posté le 25-04-2002 à 11:32:22
brunocremer a écrit a écrit : donc voila ma requete sql, il s'agit d'une BD contenant l'annuaire si on veut. je dois filtrer les entreprises (ce qui est fait dans cette requete, les particuliers n'ayant pas de rubrique). ensuite comme une entreprise peut avoir deux noms differents a la meme adresse, pour eviter ces doublons il faudrait que j'inclue un passage disant " si la rue et le numero sont les memes que un enregistrement précédant, on ne prends pas" pouvez vous m'aider ? SELECT DISTINCT [nom], [rue], [numero] FROM welkenraedt WHERE rubrique<>""; |
Marsh Posté le 25-04-2002 à 11:35:51
Je pourrais répondre à la question ( si je la lisais ) mais je pense que ton poste serait mieux placé dans prog
Marsh Posté le 25-04-2002 à 11:50:28
lord ii a écrit a écrit : Je pourrais répondre à la question ( si je la lisais ) mais je pense que ton poste serait mieux placé dans prog |
déplacé
a voir stp
Marsh Posté le 25-04-2002 à 12:03:55
faut faire une requete imbriquée
un selecte dans un select quoi !
Marsh Posté le 25-04-2002 à 12:34:20
lamatrice a écrit a écrit : faut faire une requete imbriquée un selecte dans un select quoi ! |
oui mais je vois plus du tout comment ca v a
tu peux maider ?
Marsh Posté le 25-04-2002 à 12:36:18
Select [nom] , [rue]
from table
where cheplus<>"" and (select bbal bal where balabal ) ;
c est ça une sous imbriqué
Marsh Posté le 25-04-2002 à 13:55:38
poisse a écrit a écrit : Select [nom] , [rue] from table where cheplus<>"" and (select bbal bal where balabal ) ; c est ça une sous imbriqué |
oui mais moi je ne dois aps additionner une categorie je dois retrancher certain truc de ma sekection!
donc je selectionne nom, rue, numero des entreprises
puis je dois enlever les enregistrements qui ont meme numero et meme rue( pour eviter d'envoyer trois lettres a la meme entreprise dans 3 buro differents
tu as compris?
je sais ke on peut faire un EXCEPT (mais ca ne marche pas en acces et je ne sais plus la soluce )
aidez moi
Marsh Posté le 25-04-2002 à 14:15:01
brunocremer a écrit a écrit : donc voila ma requete sql, il s'agit d'une BD contenant l'annuaire si on veut. je dois filtrer les entreprises (ce qui est fait dans cette requete, les particuliers n'ayant pas de rubrique). ensuite comme une entreprise peut avoir deux noms differents a la meme adresse, pour eviter ces doublons il faudrait que j'inclue un passage disant " si la rue et le numero sont les memes que un enregistrement précédant, on ne prends pas" pouvez vous m'aider ? SELECT DISTINCT [nom], [rue], [numero] FROM welkenraedt WHERE rubrique<>""; |
Marsh Posté le 25-04-2002 à 14:43:41
L'équivalent d'EXCEPT sous ACCESS est "MINUS" mais je ne suis pas sur que ça résolve ton problème !
Et sinon pkoi DISTINCT ne marche pas ?
[jfdsdjhfuetppo]--Message édité par socratexte le 25-04-2002 à 14:47:50--[/jfdsdjhfuetppo]
Marsh Posté le 25-04-2002 à 15:06:23
socratexte a écrit a écrit : L'équivalent d'EXCEPT sous ACCESS est "MINUS" mais je ne suis pas sur que ça résolve ton problème ! Et sinon pkoi DISTINCT ne marche pas ? |
il fo k jelimine ceux ki ont rue et numero en commun!
sinon si je trie par rue---> une seule entreprise dune rue recoit u courrier
si je trie par numero--->il ny a qu'une fois la maison "3" qui recoit u courrier sur toute la belgique
Marsh Posté le 25-04-2002 à 15:17:40
Ta clé primaire est le [nom] de l'entreprise ?
si c le cas, je te conseille de plutot mettre un identifiant ( chiffre ) en clé primaire pour chaque entreprise !
comme ça le problème ne se pose plus !
Marsh Posté le 25-04-2002 à 15:25:53
socratexte a écrit a écrit : Ta clé primaire est le [nom] de l'entreprise ? si c le cas, je te conseille de plutot mettre un identifiant ( chiffre ) en clé primaire pour chaque entreprise ! comme ça le problème ne se pose plus ! |
la clé primaire est un nombre
mais le probleme se pose vu ke dans la base de donnée l'entreprise est parfois reprise plusieurs fois a la meme adresse sil y a different service!
Marsh Posté le 25-04-2002 à 15:31:21
Pour t'aider il m'aurait fallut soir la BD soit au moins le MCD ou quelque chose ressemblant ! parce que là... ça semble se croiser dans tous les sens
je regarde quand meme
Marsh Posté le 25-04-2002 à 15:39:22
socratexte a écrit a écrit : Pour t'aider il m'aurait fallut soir la BD soit au moins le MCD ou quelque chose ressemblant ! parce que là... ça semble se croiser dans tous les sens je regarde quand meme |
je te file un exemple
PHONE LINE NAME STREET NUM ZIP CITY INFO PRO
087/88.35.57 FAX ABC PAPETERIE KESSLER M SPRL Rue Lamberts 3 4840 Welkenraedt [016133] PAPETERIES, LIBRAIRIES- PAPETERIES (DETAIL)
087/88.13.41 ABC.SPRL.PAPETERIE Rue Lamberts 3 4840 Welkenraedt [016133] PAPETERIES, LIBRAIRIES- PAPETERIES (DETAIL)
087/88.11.42 ABRASSART - VANHOUDT/M Rue Lancaumont 16 4840 Welkenraedt
087/88.11.27 ACADEMIE DE MUSIQUE Rue L Brecht 1 4840 Welkenraedt
087/89.80.11 ACADEMIE DE MUSIQUE Rue L Brecht 1 4840 Welkenraedt
087/88.03.55 ACAMPO ERNENS G Rue Nishaye 44 4841 Welkenraedt
087/44.51.01 FAX ACIS ASBL MAISON REPOS BELOEIL Chaussee de Liege 47 4841 Welkenraedt
087/89.05.05 A.C.P. SERVICES SPRL Place des Combattants 16 4840 Welkenraedt [014312] PRETS PERSONNELS ET HYPOTHECAIRES
087/89.05.06 FAX A.C.P. SERVICES SPRL Place des Combattants 16 4840 Welkenraedt
087/89.97.71 FAX ACTION SPORTS,FAX Route Charlemagne 276 4841 Welkenraedt
087/89.01.24 ACTION SPORTS SPRL Allee des Cerisiers 25 4840 Welkenraedt
087/89.97.70 ACTION SPORTS SPRL Route Charlemagne 276 4841 Welkenraedt
Marsh Posté le 25-04-2002 à 15:40:55
et regarde l'academie rue brecht...
2x la meme entreprise mais elle sy retrouve deux fois car il y a deux service a la meme adresse
donc il fo dire a acces de prendre toutes les entreprises SAUF celle ou il y une autre entreprise qui a la meme RUE ET le meme NUMERO
tu as compris la ?
Marsh Posté le 25-04-2002 à 16:07:27
Première solution :
SELECT DISTINCT([Nom]), [rue], [numero]
FROM welkenraedt
WHERE rubrique<>"";
( ajoute les parenthèses autour du Nom, elles sont importantes )
Mais je crois qu'on a encore un pb avec
ABC PAPETERIE KESSLER M SPRL Rue Lamberts 3 4840 Welkenraedt
et
ABC.SPRL.PAPETERIE Rue Lamberts 3 4840 Welkenraedt
donc je vais voir pour ajouter la rue !
mais le meilleur conseil que je peux te donner et de normaliser ta BD ( la refaire quoi )
Marsh Posté le 25-04-2002 à 16:22:46
socratexte a écrit a écrit : Première solution : SELECT DISTINCT([Nom]), [rue], [numero] FROM welkenraedt WHERE rubrique<>""; ( ajoute les parenthèses autour du Nom, elles sont importantes ) Mais je crois qu'on a encore un pb avec ABC PAPETERIE KESSLER M SPRL Rue Lamberts 3 4840 Welkenraedt et ABC.SPRL.PAPETERIE Rue Lamberts 3 4840 Welkenraedt donc je vais voir pour ajouter la rue ! mais le meilleur conseil que je peux te donner et de normaliser ta BD ( la refaire quoi ) |
le distinct ainsi il fait quoi
car juste sur le nom ca va pas
juste sur la rue non plus
numero encore moins
donc tu le fais sur quoi ton distinct la ?
Marsh Posté le 25-04-2002 à 16:58:19
brunocremer a écrit a écrit : le distinct ainsi il fait quoi car juste sur le nom ca va pas juste sur la rue non plus numero encore moins donc tu le fais sur quoi ton distinct la ? |
Marsh Posté le 25-04-2002 à 17:03:01
brunocremer a écrit a écrit : le distinct ainsi il fait quoi car juste sur le nom ca va pas juste sur la rue non plus numero encore moins donc tu le fais sur quoi ton distinct la ? |
Marsh Posté le 25-04-2002 à 17:04:41
hummm je pense qu on la vue ....
mais bon ça te fait un up gratuit là
Marsh Posté le 25-04-2002 à 17:06:09
poisse a écrit a écrit : hummm je pense qu on la vue .... mais bon ça te fait un up gratuit là |
Marsh Posté le 25-04-2002 à 17:08:03
j'ai fait vite fait quelque tests, et il s'avère que le DISTINCT à la fois sur le nom et à la fois sur la rue est suffisant !
Le problème est qu'il ne l'accepte pas sous Access
Marsh Posté le 25-04-2002 à 17:19:14
socratexte a écrit a écrit : j'ai fait vite fait quelque tests, et il s'avère que le DISTINCT à la fois sur le nom et à la fois sur la rue est suffisant ! Le problème est qu'il ne l'accepte pas sous Access |
je fais koi
Marsh Posté le 25-04-2002 à 17:21:54
Passer à Oracle ?... PHP MySQL ?!... non bon je regarde comment contourner le problème sous access ! mais je te garantie rien !
Marsh Posté le 25-04-2002 à 17:23:01
socratexte a écrit a écrit : Passer à Oracle ?... PHP MySQL ?!... non bon je regarde comment contourner le problème sous access ! mais je te garantie rien ! |
ok merci
petite idée... avec un NOT IN () ca pourrait pas aller?
je dis ca pour t'aider
Marsh Posté le 25-04-2002 à 17:26:20
le NOT IN() te les supprimera tous de ta première Selection
Je pensais plutot à créer avec des alias un autre welkenraedt !
Nous aurions 2 noms de tables qui en fait pointeraient vers la meme...
Marsh Posté le 25-04-2002 à 17:38:41
tu fait une requete distinct avec les champs qui t'interessent rue et numero et seulement ceux la, et ensuite une requete que tu accroche a la précédente pour avoir les infos complémentaires en incluant que les champs de la requete précédente.
Marsh Posté le 25-04-2002 à 17:47:50
krytz a écrit a écrit : tu fait une requete distinct avec les champs qui t'interessent rue et numero et seulement ceux la, et ensuite une requete que tu accroche a la précédente pour avoir les infos complémentaires en incluant que les champs de la requete précédente. |
c justement là le problème
Marsh Posté le 25-04-2002 à 11:14:38
donc voila ma requete sql, il s'agit d'une BD contenant l'annuaire si on veut. je dois filtrer les entreprises (ce qui est fait dans cette requete, les particuliers n'ayant pas de rubrique). ensuite comme une entreprise peut avoir deux noms differents a la meme adresse, pour eviter ces doublons il faudrait que j'inclue un passage disant " si la rue et le numero sont les memes que un enregistrement précédant, on ne prends pas"
pouvez vous m'aider ?
SELECT DISTINCT [nom], [rue], [numero]
FROM welkenraedt
WHERE rubrique<>"";
---------------
[:pentier]