Tulosta

CASE -kuvaus

Tietokanta

SQL -kyselyt

Yleistä kyselyistä

Sarakkeiden valinta

Rivien valinta

Tarkka vastaavuus

Vertailuoperaattorit

Lajittelu

AND

BETWEEN - AND

OR

IN

LIKE

NOT

Tyhjä merkkijono

Boolen algebra

Sulutus

Päivämääräfunktiot

Liitokset

Perinteinen liitos

Sisäliitos

Laskenta

Sarakkeilla

Ryhmillä

Muut

Alikyselyt

Kyselyiden yhdistäminen

Taulujen yhdistäminen kyselyssä

SQL:ssä voit yhdistää kaksi tai useampaa kyselyä yhdeksi vastaustauluksi UNION -operaattorin avulla. Kyselyjen kenttien tulee tietenkin vastata toisiaan titotyypiltään ja niitä tulee olla yhtä monta!

Esimerkki: hae vuoden 2009 tuotanto eli varastosta ja myydyistä blokeista ko vuoden aikana valmistetut blokit:
/* merkitään myyntipäivämäärä (datesold) tyhjäksi arvoksi */
SELECT qualityID, blockID, len, hei, wid, tons, dateproduced, null
FROM Block
WHERE YEAR(dateproduced)=2009

UNION

/* myyntipäivämääräksi normaali arvo */
SELECT qualityID, blockID, len, hei, wid, tons, dateproduced, datesold
FROM Soldblock
WHERE year(dateproduced)=2009:

Viimeinen sarake osoittaa kummasta taulusta rivi on peräisin: arvo NULL Block -taulu eli blokkia ei ole vielä myyty!

--------------
laske varastosaldo laaduittain siten, että tuloksesta käy ilmi myös laadut, joita ei varastossa ole yhtään:

/* lasketaan normaalilla liitoksella laatukohtainen varastosaldo */
SELECT Q.qualityid, Q.name, SUM(B.tons) AS Tonnit
FROM Quality Q, Block B
WHERE Q.qualityID = B.qualityID
GROUP BY Q.qualityID, Q.name

UNION

/* Haetaan alikyselyllä laadut, joita ei ole myyty yhtään */
SELECT Q.qualityID, Q.name, 0
FROM Quality Q
WHERE Q.qualityID NOT IN ( SELECT DISTINCT qualityID FROM Block )

 

Juha Kiukas - juha@kiukas.fi - 040 551 0711