Kuinka saan tehtyä SQL:llä sellaisen lauseen, että se palauttaa tiedon sillä perusteella, mitä siitä hausta tulee? Jos siis vaikka taulussa on tiedot "Pekka" ja "Matti". Teen SQL-lauseen, joka palauttaa jomman kumman. Tämän vastauksen perusteella se palauttaa sukunimen kyseiselle etunimelle, joka nyt voidaan tehdä vaikka if-lauseella tai jollain vastaavalla. Kannassa ei kuitenkaan ole sukunimelle taulua.
En todellakaan tiedä mihin tälläistä tarvitsee, mutta työssäoppimassa piti tälläinen tehdä, eikä onnistu :(
MySQL:ssä homma toimii jotakuinkin seuraavasti (kts. if- ja case-lauseet): http://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html
Noista sain sen verran irti, kuinka voidaan säätää yhtä riviä. Tarkoitus olisi kuitenkin saada tyyliin seuraavasta taulusta:
+------------------+-------+ | nimi | tulos | +------------------+-------+ | Citymarket | 1000 | | K-Market | 650 | | Supermarket | 900 | | Verkkokauppa.com | 2000 | | Bulldog NetStore | 500 | +------------------+-------+
jos tulos on yli 800, tulos on liikaa
+------------------+--------+ | nimi | tulos | +------------------+--------+ | Citymarket | liikaa | | K-Market | 650 | | Supermarket | liikaa | | Verkkokauppa.com | liikaa | | Bulldog NetStore | 500 | +------------------+--------+
EDIT: ratkaistu seuraavalla kyselyllä
SELECT nimi, "liikaa" as tulos FROM kaupat WHERE tulos > 800 UNION SELECT nimi, tulos FROM kaupat WHERE tulos < 800;
Mitä tulostuu jos tulos on tasan 800?
Aihe on jo aika vanha, joten et voi enää vastata siihen.