Vinnaren i pepparkakshustävlingen!
  • 1
  • 2
2017-01-05, 18:09
  #13
Medlem
VenomXs avatar
Alltså, håller du på att lösa en skoluppgift som du absolut inte bryr dig om, eller vad är det frågan om?

Nog för att du inte verkar kunna ett skit om SQL men du verkar ju helt omotiverad till att ens försöka förstå svaren du får?

Du har redan fått alla pusselbitar du behöver och man lär sig i regel mer om man inte kräver att allt ska serveras i färdigt paket på silverfat. Om man nu är intresserad av att lära sig förstås.
Citera
2017-01-05, 18:20
  #14
Medlem
BoKKaBruns avatar
Citat:
Ursprungligen postat av e7andy
Jag hade lite fel. Du behöver inte gruppera på typ. Du har ju bara en typ.

select sum(summa) from kostnad
where typ = 'bränsle' AND
datum between '2016-01-01' AND '2016-12-31';

http://sqlfiddle.com/#!15/901e2/1/0

Jo sådär fick jag också till det. Men jag vill ha med i resultatet: Bränsle och vilka datum det är mellan, men kanske bara blir svårt och onödigt?
Citera
2017-01-05, 19:19
  #15
Medlem
Citat:
Ursprungligen postat av BoKKaBrun
Jo sådär fick jag också till det. Men jag vill ha med i resultatet: Bränsle och vilka datum det är mellan, men kanske bara blir svårt och onödigt?
Du vet ju att det är "Bränsle" och vilket intervall det är eftersom det står i WHERE-clausen så det känns onödigt.

Annars kan du lägga till det:
select sum(summa), typ, '2016-01-01' as startDate, '2016-12-31' as endDate from kostnad
where typ = 'bränsle' AND
datum between '2016-01-01' AND '2016-12-31'
GROUP BY typ;

Jag håller med VenomX ovan. Du får allt serverat här och det är inget avancerat utan det mest grundläggande inom SQL som du får fram genom att väldigt snabb googling. Vill du inte lära dig det här? Om du vill lära dig så är det bättre att jobba lite för det och testa sig fram än att fråga enkla frågor.
__________________
Senast redigerad av e7andy 2017-01-05 kl. 19:22.
Citera
2017-01-05, 20:48
  #16
Medlem
BoKKaBruns avatar
Citat:
Ursprungligen postat av BoKKaBrun
Jo sådär fick jag också till det. Men jag vill ha med i resultatet: Bränsle och vilka datum det är mellan, men kanske bara blir svårt och onödigt?

Citat:
Ursprungligen postat av e7andy
Du vet ju att det är "Bränsle" och vilket intervall det är eftersom det står i WHERE-clausen så det känns onödigt.

Annars kan du lägga till det:
select sum(summa), typ, '2016-01-01' as startDate, '2016-12-31' as endDate from kostnad
where typ = 'bränsle' AND
datum between '2016-01-01' AND '2016-12-31'
GROUP BY typ;

Jag håller med VenomX ovan. Du får allt serverat här och det är inget avancerat utan det mest grundläggande inom SQL som du får fram genom att väldigt snabb googling. Vill du inte lära dig det här? Om du vill lära dig så är det bättre att jobba lite för det och testa sig fram än att fråga enkla frågor.
Absolut jag förstår vad ni menar, hade bara lite tight om tid just nu.

En annan fråga, jag ska ha ut MAX värdet på en rad. i vanliga fall kan man ju använda:
Kod:
 where m.hästkrafter = (select max(hästkrafter) from modell) 

Men MAX värdet finns i en tabell skapat med VIEW.
Citera
2017-01-05, 21:00
  #17
Medlem
Citat:
Ursprungligen postat av BoKKaBrun
Absolut jag förstår vad ni menar, hade bara lite tight om tid just nu.

En annan fråga, jag ska ha ut MAX värdet på en rad. i vanliga fall kan man ju använda:
Kod:
 where m.hästkrafter = (select max(hästkrafter) from modell) 

Men MAX värdet finns i en tabell skapat med VIEW.
Du kan använda vyer på samma sätt som tabeller så tänk inte på att det är en vy.
Citera
2017-01-05, 21:09
  #18
Medlem
BoKKaBruns avatar
Citat:
Ursprungligen postat av e7andy
Du kan använda vyer på samma sätt som tabeller så tänk inte på att det är en vy.
Jo tänkte så, men kolumnen VINST är skapat utifrån "summa - kostnad as vinst", om du förstår hur jag menar.
Citera
2017-01-05, 21:12
  #19
Medlem
Citat:
Ursprungligen postat av BoKKaBrun
Jo tänkte så, men kolumnen VINST är skapat utifrån "summa - kostnad as vinst", om du förstår hur jag menar.
Nej, jag förstår inte. Är det något med subqueries som behöver göras?

Du kan slå ihop tabeller (och vyer) med join eller så gör du subqueries.
Citera
2017-01-05, 21:16
  #20
Medlem
BoKKaBruns avatar
Citat:
Ursprungligen postat av e7andy
Nej, jag förstår inte. Är det något med subqueries som behöver göras?

Du kan slå ihop tabeller (och vyer) med join eller så gör du subqueries.

Kod:
select reg_nr, summa as inkomst, kostnad, summa - kostnad as vinst
from inkomst
natural join utgift

Får fram resultatet med denna query, men vill filtrera det med MAX().
Summa och kostnad är alltså vyer.
Citera
2017-01-05, 23:07
  #21
Medlem
Citat:
Ursprungligen postat av BoKKaBrun
Kod:
select reg_nr, summa as inkomst, kostnad, summa - kostnad as vinst
from inkomst
natural join utgift

Får fram resultatet med denna query, men vill filtrera det med MAX().
Summa och kostnad är alltså vyer.
Jag förstår ändå inte. I din select så ser summa och kostnad ut att vara kolumner.
Vad är det du vill ha max-värdet på? Vinst?

Enklast är nog om du visar alla tabeller, vyer och queries i sqlfiddle.
Citera
2017-01-06, 00:01
  #22
Medlem
BoKKaBruns avatar
Citat:
Ursprungligen postat av e7andy
Jag förstår ändå inte. I din select så ser summa och kostnad ut att vara kolumner.
Vad är det du vill ha max-värdet på? Vinst?

Enklast är nog om du visar alla tabeller, vyer och queries i sqlfiddle.

Ja dom är kolumner joinade från inkomst och utgift, kanske skrev fel förra gången. Men hur som så har jag fått till det, såhär:

Kod:
select reg_nr, summa as inkomst, kostnad, summa - kostnad as vinst
from inkomst
natural join utgift
where summa - kostnad = (select max( summa - kostnad) from inkomst natural join utgift);

Får nått error i sqlfiddle
Citera
  • 1
  • 2

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