Avatar billede moba Nybegynder
15. marts 2004 - 21:42 Der er 11 kommentarer og
1 løsning

sql - update

Hejsa,
Jeg har to tabeller
tabel "log"
tabel "sælger"
I log er der bla. en kolonne "telefonnr" og "sælgernr"
sælgernr er blankt.
Jeg skal nu lave et update statement som updater sælgernr på baggrund af telefonnr i sælger tabellen. Dette er ikke umiddelbart et  problem (jeg gør som følger)
UPDATE log, sælger SET log.sælgernr = sælger.sælgernr
Where log.telefonnr = sælger.tlf1;

Problemet er imidlertid, at der findes op til 3 forskellige telefonnr (tlf1, tlf2, tlf3) for een sælger i tabel sælger. Så jeg skal altså have forespørgslen til at løbe alle numrene igennem for hver sælger og således update log tabellen med sælgernr hvor enten tl1, tlf2 eller tlf3 matcher log.telefonnr. Dette synes i grunden ikke som noget problem men access går bare i stå, jeg forsøger med
Where log.telefonnr = sælger.tlf1 or log.telefonnr = sælger.tlf2 or log.telefonnr = sælger.tlf3;

Jeg kan sagtens få det til at virke med 3 forespørgsler med et tlf i hver, men jeg vil helst ungå det alternativ.
Any clue?
Morten
Avatar billede ellebaek Nybegynder
15. marts 2004 - 21:48 #1
UPDATE log, sælger SET log.sælgernr = sælger.sælgernr
Where (log.telefonnr = sælger.tlf1 or log.telefonnr = sælger.tlf2 or log.telefonnr = sælger.tlf3);

prøv det her... Det burde ikke gøre forskel, men jeg har til tider haft succes med parenteser.
Avatar billede moba Nybegynder
15. marts 2004 - 21:51 #2
sorry, jeg har brugt parenteser, de er bare ikke anført her (af ren og skær dovenhed :-))
Avatar billede ellebaek Nybegynder
15. marts 2004 - 21:55 #3
*ss*

ok... men det burde virke på den måde...
kalder du det via  asp eller kun i access ?
Avatar billede moba Nybegynder
15. marts 2004 - 21:57 #4
kun i access
Avatar billede moba Nybegynder
15. marts 2004 - 21:58 #5
det skal siges at der er store datamængder i log tabellen (55.000 rækker), men ved kørsel af 3 enkeltstående forespørgsler tager det ingen tid.
Avatar billede ellebaek Nybegynder
15. marts 2004 - 22:02 #6
nej, det burde heller ikke tage længere tid med or...

mystisk...

Men du har vel prøvet både med og uden parentes mm.
Avatar billede moba Nybegynder
15. marts 2004 - 22:05 #7
jeps, jeg lod lige forespørgslen arbejde. Ved kørsel med OR tager det ca. 5 minutter, og resultatet er nøjagtig det samme som de 3 forespørgsler til sammen. De 3 forespørgsler tager ca 10 sekunder til sammen!
Avatar billede ellebaek Nybegynder
15. marts 2004 - 22:11 #8
hmm... Så må du nok hellere holde dig til de 3 forespørgsler, selvom det selvfølgelig ikke er helt lige så flot. Men så længe det er mere effektivt.
Avatar billede moba Nybegynder
15. marts 2004 - 22:14 #9
:-) Tja det kan godt være det er det eneste rigtige, så kan jeg jo evt lave et vba script som kører de 3 sql statements under en funktion. Jeg er bare lidt muggen over at det ikke virker, det bryder lidt mit billede af at sql er logisk!!!
Avatar billede moba Nybegynder
15. marts 2004 - 22:16 #10
lader spm stå til i morgen men håb om en logisk forklaring :-)
Avatar billede ellebaek Nybegynder
15. marts 2004 - 22:24 #11
forståeligt nok...
Og er hel enig med at det bryder det logiske billede af sql..
Avatar billede moba Nybegynder
16. marts 2004 - 11:12 #12
Er åbnet igen under sql update igen igen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester