webForumDet fria alternativet

Problem med update-fråga

4 svar · 301 visningar · startad av elisa

elisaMedlem sedan apr. 200432 inlägg
#1

Hej!

Jag har problem med att formulera en sql-sats för att uppdatera en tabell med data från en annan tabell.

Det finns två olika tabeller som båda innehåller artikelregister, tabellerna har likadan struktur. Vi kan kalla tabellerna för ARTIKEL1 och ARTIKEL2.
Tabellen ARTIKEL2 ska uppdateras med data från ARTIKEL1.

Uppdateringen av tabellen ska ske enligt följande regel:
Om artikelnummer redan finns i ARTIKEL2 ska kolumnen "pris" uppdateras med värdet i ARTIKEL1.

Det bästa är om allt detta kan utföras med hjälp av en och samma sql-sats. Jag använder en Access-databas.

Följande uttryck fungerar i SQL-server (, men som sagt så använder jag Access.)
UPDATE ARTIKEL2 SET pris = ARTIKEL1.pris FROM ARTIKEL2, ARTIKEL1 WHERE ARTIKEL2.artnr = ARTIKEL1.artnr

Någon som har en idé?

//Elisabeth

LarsGMedlem sedan dec. 200012 465 inlägg
#2
UPDATE ARTIKEL2 
SET pris = (
  select pris 
    from artikel1
    where artikel1.artnr = artikel2.artnr
   )
where artnr in (
   select artnr 
    from artikel1
  )
elisaMedlem sedan apr. 200432 inlägg
#3

Tack för snabbt svar! Men när jag använder uttrycket får jag felmeddelandet "Operationen måste använda en fråga som kan uppdateras".
Vad kan det bero på?

//Elisa

@ndersMedlem sedan juni 200026 914 inlägg
#4

Det brukar bero på att den som försöker köra frågan (exempelvis kontot IUSR_xxxx om man använder en webbapplikation för att exekvera frågor) inte har tillräckliga filsystemsrättigheter på mappen där databasen ligger.

Kör du detta från en webbsida eller hur exekverar du frågan?

LarsGMedlem sedan dec. 200012 465 inlägg
#5

Det kan också vara en begränsning i Access. Det finns en alternativ syntax (som dock inte ingår i SQL-standarden)

UPDATE ARTIKEL2 inner join artikel1 
on artikel1.artnr = artikel2.artnr
SET artikel2.pris =  artikel1.pris
Genererad på 513 ms · cache AV · v20260730165559-full.f96bc7eb