Kun on taulut:
hinnasto:
koodi; kirja: kouluhinta; kirjastohinta; yksityishinta; poistohinta
kk1; kuvak; 4,00 ; 3,00 ; 5,00 ; 1,00
kk2; leikek; 10,00 ; 9,00 ; 20,00 ; 5,00
.
.
.
tilaajat:
tunnus; nimi; hinnastolaji;
456 ; Jaska ; yksityishinta
567 ; Jukka ; kouluhinta
569 ; Jaakko ; kirjastohinta
.
.
.
myynti:
koodi: kirja: tunnus: nimi: määrä: poisto: hinta
kk1 ; kuvak; 456 ; Jaska ; 3 ; K
kk2 ; leikek ; 567 ; Jukka; 1
.
.
.
Kysymyksenä olisi, että onko mahdollista hakea myynti-taulukkoon hinta siten, että tilaajan hinnastolajin perusteella haetaan joko kouluhinta, kirjastohinta, yksityishinta tai poistohinta? Lisäksi täytyy tarkastella, onko myynti-taulussa K kohdassa poisto, jolloin haetaan poistohinta.
Onko tällainen mahdollista suorittaa Accessilla tai SQL:llä ja miten se toteutetaan. Vai pitääkö hinnasto-taulua muuttaa jotenkin?
hinnasto:
koodi; kirja: kouluhinta; kirjastohinta; yksityishinta; poistohinta
kk1; kuvak; 4,00 ; 3,00 ; 5,00 ; 1,00
kk2; leikek; 10,00 ; 9,00 ; 20,00 ; 5,00
.
.
.
tilaajat:
tunnus; nimi; hinnastolaji;
456 ; Jaska ; yksityishinta
567 ; Jukka ; kouluhinta
569 ; Jaakko ; kirjastohinta
.
.
.
myynti:
koodi: kirja: tunnus: nimi: määrä: poisto: hinta
kk1 ; kuvak; 456 ; Jaska ; 3 ; K
kk2 ; leikek ; 567 ; Jukka; 1
.
.
.
Kysymyksenä olisi, että onko mahdollista hakea myynti-taulukkoon hinta siten, että tilaajan hinnastolajin perusteella haetaan joko kouluhinta, kirjastohinta, yksityishinta tai poistohinta? Lisäksi täytyy tarkastella, onko myynti-taulussa K kohdassa poisto, jolloin haetaan poistohinta.
Onko tällainen mahdollista suorittaa Accessilla tai SQL:llä ja miten se toteutetaan. Vai pitääkö hinnasto-taulua muuttaa jotenkin?
Vastaukset 1
Vanhimmat
Vaikkapa oraclella decode:
SELECT
decode( tilaajat.hinnastolaji,
'yksityishinta', hinnasto.yksityishinta,
'kirjastohinta', hinnasto.kirjastohinta
...)
Tuo tosin vaatii vähän kovakoodausta, mutta sellasita siitä tulee, kun kenttien nimiä tallennellaan tietokannan sarakkeisiin... :)
Itse muuttaisi vähän rakennetta, mutta se on jo pidempi juttu.