Vinnaren i pepparkakshustävlingen!
2014-06-09, 17:56
  #1
Medlem
Hejsan allihop sitter och kodar och jag försöker sänka alla prisvärden i min Bil tabell.
Min bil tabell ser ut så här:


Jag trodde att jag kunde höja alla priser i denna tabellen genom att köra denna koden här:

Kod:
update bil
set bil
.pris = (select sum(bil.pris 0.05from bil)
where bil.pris 

Men då verkar den som att den först tar och summerar priset för alla priser och efter att den gjort det så gångar den med 0.05 vilket ger mig ett resultat att alla bilar då kostar 1550 vilket då blir fel. Jag vet att jag kan lösa detta genom att göra detta manuellt genom följande kodrad:

Kod:
update bil
set bil
.pris 30000
where bil
.regnr 'B1' 

Men hur gör man om man vill höja eller sänka alla priser med en update?
Citera
2014-06-09, 18:03
  #2
Medlem
blää testade att skriva omkoden genom att göra dessa ändringar och så Booom så funkade det... ibland gissar man sig fram och slår spiken rätt i skallen!!


Kod:
update bil
set bil
.pris *= 0.05
where bil
.pris 

men frågan återstår om varför det inte funkar att få fram rätt svar med den andra satsen? Är noob på SQL så en förklaring hade varit super
__________________
Senast redigerad av Poopo 2014-06-09 kl. 18:08.
Citera
2014-06-09, 19:52
  #3
Medlem
John-Pauls avatar
I din första query säger du att du vill att för alla rader i tabellen bil där kolumnen pris är högre än 0 så ska alla dessa rader uppdateras så att kolumnen pris blir summan av vart och ett av varje bils pris multiplicerat med 0,05 och svaret bli att alla dessa rader får värdet 15500.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback