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?
Haku useasta sarakkeesta
Opettelen vasta
1
656
Vastaukset
- The Rat
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.
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
- 1105558
Suomen kaksikielisyys - täyttä huuhaata
Eivätkö muuten yksilöt pysty arvioimaan mitä kieliä he tarvitsevat? Ulkomaalaiselle osaajalle riittää Suomessa kielitai954821Työeläkeloisinta 27,5 mrd. per vuosi
Tuo kaikki on pois palkansaajien ostovoimasta. Ja sitten puupäät ihmettelee miksei Suomen talous kasva. No eihän se kas1404774Mikä on vaikeinta siinä, että menetti yhteyden kaivattuun, jota vielä ajattelee?
Mikä jäi kaihertamaan? Jos jokin olisi voinut mennä toisin, mitä se olisi ollut? Mitä olisit toivonut vielä ehtiväsi san3682225- 1182065
- 1081807
- 2561577
- 3711318
Pääsit koskettamaan
Sellaista osaa minussa jota kukaan ei ole ennen koskettanut. Siksi on hyvin vaikea unohtaa sinut kokonaan.591151- 2221135