10. marts 2010 - 16:29Der er
8 kommentarer og 1 løsning
UPDATE hvor værdi skal lægges sammen ud fra SELECT
Følgende virker ikke, men er det muligt, men lidt ændringer?
UPDATE projektmedlemmer SET procent = '(20 + SELECT procent FROM projektmedlemmer WHERE ansvarlig = '1' and tilbudID = '37027')' WHERE tilbudID = '37027'
Jeg sidder bare og smaasover uden at taenke saa meget over det, saa du skal ikke forvente for meget fra min side.
De 2 SQL er dog ikke helt ens. Saa vidt jeg kan se vil de opdatere et forskelligt antal raekker, hvis der er flere raekker med samme tilbudsid og forskellig ansvarlig.
Jeg kan så se, jeg glemte at få en betingelse mere med i UPDATE'n, så den kun gør det ved den ansvarlige...
UPDATE projektmedlemmer SET procent = '(20 + SELECT procent FROM projektmedlemmer WHERE ansvarlig = '1' and tilbudID = '37027')' WHERE tilbudID = '37027' AND ansvarlig = '1'
Desværre er MySQL nok ikke ny nok, til at arne_v's løsning virker ikke. Der får jeg følgende fejl.
#1093 - You can't specify target table 'projektmedlemmer' for update in FROM clause
Min din, michael_stim virkede, så den skal se sådanne ud:
UPDATE projektmedlemmer SET procent = (SELECT 10+procent) WHERE tilbudID = 37027 AND ansvarlig = '1'
og testede lige for om jeg skulle have SELECT foran 10, men det er ikke nødvendigt.
Men skriver jeg noget og "guruen" skriver noget andet, har jeg en tendens til at tro på Arnes forslag. Og jeg har desværre nok ret i 90% af tilfældende ;o)
He he, det kan du have ret i, men nu gjorde jeg det jo heller ikke lige frem nemmere for "guruen", ved ikke at oplysning hvilken version af MySQL jeg kører. Så jeg kan da ikke afvise, at hans forslag ikke også virker, bare ikke på min løsning.
Men tak for hjælpen.
Synes godt om
Ny brugerNybegynder
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.