• No results found

 Subqueries i WHERE  Subqueries i SELECT  Subqueries - underfrågor I SQL 3

N/A
N/A
Protected

Academic year: 2021

Share " Subqueries i WHERE  Subqueries i SELECT  Subqueries - underfrågor I SQL 3"

Copied!
7
0
0

Loading.... (view fulltext now)

Full text

(1)

I

NNEHÅLL

SQL

DEL

3

 Subqueries - underfrågor

 Subqueries i SELECT

 Subqueries i WHERE

Chapter 12.

(2)

S

UBQUERIES I

SELECT

SELECT Kundid, Namn,

(SELECT COUNT(*) From Faktura

WHERE Kund.Kundid=Faktura.Kundid) as antalFakturor From Kund;

Antag att du vill ha en lista på Kundid, Namn och Antal fakturor som en kund har. Det flera olika sätt att ta fram det men det kan se ut så här:

SELECT Kundid, Namn,

(SELECT MAX(Datum) From Faktura

WHERE Kund.Kundid=Faktura.Kundid) as Senast From Kund;

När handlade våra kunder senast

(3)

S

UBQUERIES I

SELECT

FORTS

….

Hur många fakturor har skapats under oktober, november och december?

SELECT

(SELECT COUNT(*) FROM Faktura

WHERE Faktura.Datum Between '2007-10-01' AND '2007-10-31') Oktober, (SELECT COUNT(*) FROM Faktura

WHERE Faktura.Datum Between '2007-11-01' AND '2007-11-30') November, (SELECT COUNT(*) FROM Faktura

WHERE Faktura.Datum Between '2007-12-01' AND '2007-12-31') December;

SELECT Month(datum) as Månad, count(fakturaid) as Antalet FROM Faktura

GROUP BY Month(Datum);

SELECT Datename(Month, Datum) as Månad, count(fakturaid) as

(4)

S

UBQUERIES I

WHERE

SELECT Kundid, Namn, Postnr, Ort From Kund

WHERE Kundid NOT IN(SELECT DISTINCT KundID From Faktura);

Ett sätt att finna ut vilka kunder som inte har köpt något, dvs vilka som inte finns i Fakturatabellen.

SELECT DISTINCT KundID From Faktura

Skapar en lista med de Kundid som finns i Faktura. Ett kundid kommer bara med en gång (DISTINCT)

WHERE Kundid NOT IN

Ger att de Kundid som inte finns i listan visas.

(5)

SELECT Artikelid, Artnamn From Artikel

WHERE Antal*Pris > (SELECT AVG(Antal*Pris) From artikel);

Hur många artiklar ligger över genomsnittet av vårt lagervärde?

Antal*pris jämförs med aggreatvärdet AVG(Antal*Pris) som ger medelvärdet på lagervärdet för alla artiklar.

S

UBQUERIES I

WHERE

SELECT AVG(Antal*Pris) From Artikel;

SELECT Artikelid, Artnamn,

(SELECT AVG(Antal*Pris) From artikel) as Medel

From Artikel

(6)

UPDATE Fakturarad SET Pris = (SELECT Pris

From Artikel

WHERE Fakturarad.Artikelid=Artikel.Artikelid) WHERE Artikelid=101;

Att köra en uppdatering av priset i fakturarad med data ur tabellen Artikel kan se ut på följande.

I första fallet så uppdateras endast artikel med Artikelid 101 I andra fallet så uppdateras alla artiklar

S

UBQUERIES I SAMBAND MED

UPDATE

UPDATE Fakturarad SET Pris = (SELECT Pris

From Artikel

WHERE Fakturarad.Artikelid=Artikel.Artikelid);

(7)

INSERT INTO #temp (namn, Ort, fakturaid, datum, betvillkor) SELECT k.namn, k.ort, f.fakturaid, f.datum, f.betvillkor From Kund as K INNER JOIN Faktura As F ON K.kundid=F.kundid;

Att läsa in data till en tabell från andra tabeller.

I första fallet så är det till en befintlig temporärtabell (#).

I andra fallet skapas temporärtabellen samtidigt med INTO

S

UBQUERIES I SAMBAND MED

INSERT

SELECT k.namn, k.Ort, f.fakturaid, f.datum, f.betvilkor INTO #temp

From Kund as K INNER JOIN Faktura As F ON K.kundid=F.kundid;

References

Related documents

— Författaren angifver sitt arbete vara afsedt att tjenstgöra såsom en mellanlänk mellan läran om de bestämda talen och den egent- liga algebran.. H a n anser nämligen förut

Soliditet l: eget kapital ökat med minoritetsandel samt 50% av obeskattade reserver i relation till balansomslutningen. soliditet 2: eget ka pital ökat med minoritetsandel samt

videri volunt a verbo > quod loqui fignificat, quod ipfa fit.. ut Mercurius, Deorum; & in pri- mis, qvum fermone

NSAB säljer satellitkapacitet för TV- och radiosändningar och för olika til- lämpningar inom området företags- kommunikation och Internet, i för- sta hand inom Norden men även

För att utnyttja väntetiden innan uppskjutningen till något konstruk- tivt föreslog Notelsat med stöd från de norska och svenska televerken, att fördubbla antalet kanaler i Tele-

se planbeskrivning eller teckenförklaring för plankarta. För beteckningens betydelse, Skyddsåtgärder

hade väl ändå till sist det unga nygifta par, som när de återvände hem från sin lilla bröllopstripp finner sig ställda inför tvånget att ställa till en för deras

Lösningen erhålles enligt följande grundtanke: H u r länge det dröjer, kan man lätt bestämma, om man bara får reda på, hur stor del räntan är av räntan på hela året.