SQL är roligt men inte när det går emot.
Jag har följande kod som funkar för att selektera ut priser som inte är samma i olika språkvarianter. Jag vill då använda en update som tar det ena priset (ets) och uppdaterar i ett annat språk (ete).
select ete.tabradid,ete.artnr, ete.pris,ets.artnr, ets.pris ,ets.tabradid
from ElementTabell ets, ElementTabell ete
where ets.eleid IN (select eleid from element e, datablad d, produktgruppsnamn pg
where e.dbid=d.dbid and d.prodgrpnamnid=pg.prodgrpnamnid and sprakid=1)
and ete.eleid IN(select eleid from element e, datablad d, produktgruppsnamn pg
where e.dbid=d.dbid and d.prodgrpnamnid=pg.prodgrpnamnid and sprakid=3)
and ets.pris != ete.pris
and ets.artnr = ete.artnr
and ets.artnr!=''
and left(ets.pris,1) LIKE '[0-9]'
and left(ete.pris,1) LIKE '[0-9]'
and right(ets.pris,2) LIKE ':-'
Om jag byter ut SELECT-raden mot UPDATE så funkar det inte som jag tycker den borde... I need help :q
Är man tjurig så går det ibland. Lite konstigt men troligen gillar inte SQL-server att man gör alias i UPDATE-satser. Här följer min lyckade sats:
UPDATE ElementTabell set ElementTabell.pris=ets.pris
from ElementTabell ets, ElementTabell
where ets.eleid IN (select eleid from element e, datablad d, produktgruppsnamn pg
where e.dbid=d.dbid and d.prodgrpnamnid=pg.prodgrpnamnid and sprakid=1)
and ElementTabell.eleid IN(select eleid from element e, datablad d, produktgruppsnamn pg
where e.dbid=d.dbid and d.prodgrpnamnid=pg.prodgrpnamnid and sprakid=3)
and ets.pris != ElementTabell.pris
and ets.artnr=ElementTabell.artnr
and ets.artnr!=''
and left(ets.pris,1) LIKE '[0-9]'
and left(ElementTabell.pris,1) LIKE '[0-9]'
and right(ets.pris,2) LIKE ':-'
269 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e