Avatar billede edderper Nybegynder
15. maj 2001 - 14:57 Der er 3 kommentarer og
1 løsning

Update Query

Hej

Jeg har brug for at lave en Update Query, som ændrer værdien i et felt i en tabel, hvis værdien af et felt i _alle_ joinede records i en anden tabel opfylder et givet kriterium

Den query som er mit udgangspunkt:

UPDATE Table2 INNER JOIN Table1 ON [Table2].[joinfield]=[Table1].[id] SET Table1.field1 = Yes
WHERE ((([Table2].[field1])=\'crit\'));

ændrer værdien af table1.field1 så snart et af de joinede records i table2 opfylder kriteriet.

Hvad kan jeg gøre?
Avatar billede privaten Nybegynder
16. maj 2001 - 09:10 #1
Skrive en stump kode...
Avatar billede jazper Nybegynder
21. maj 2001 - 14:49 #2
Du skal lave et view/subquery af den tabel der skal checkes. I denne laver du en count på det felt du vil joine med og en sum på udtrykket(felt=kriterie) (Du skal lave ABS() på den hvis det er i access)-> Sum(Abs(Field1=\'crit\'))
Du skal group by feltet.
Det vil tælle dels antal records pr join (Count) og dem der mather (sum)

På den måde kan du i kriterei i din update sige where Count_field1=Sum_Expression

Hmm, mon det er tydeligt nok hvad jeg mener.

Jesper
Avatar billede edderper Nybegynder
21. maj 2001 - 16:24 #3
Hm, det lyder rigtigt.
Men det har jeg altså ikke lige nosser til at implementere.
Faktisk må jeg indrømme at jeg fulgte privatens \"ikke-råd\"...

Per
Avatar billede jazper Nybegynder
21. maj 2001 - 16:45 #4
Sååå langhåret er det heller ikke. Hvis du tager det i 2 skridt (lav view først), så er det jo rimeligt overskueligt. Anyway, takke for pointene selvom jeg jo rettelig ikke har fortjent dem (-:
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