Priprema podataka je identična za sve tri postavke traženja.
Postavkom definiramo SQL naredbu, koja nam kao rezultat vraća stupce tablice
(recordseta), koje prikazujemo u padajućem ekranu u programu.
Bit postavljanja traženja identa je oblikovanje odgovarajućeg select retka,
koji kao rezultat vraća odgovarajuće podatke. Pogledajmo najjednostavniji
primjer, koji je predefiniran u PANTHEON-u.
select IDENT, AKTIVNO, NAZIV, MPCENA, VPCENA, VPCENA2, SASTAVNICA
from MS
order by NAZIV
Ovaj redak nam kao rezultat vraća 7 stupaca, u kojima je šifra artikla,
status, naziv, te sve vrste cijena.
Pogledajmo kako bismo redak nadogradili, kako bismo kao 8. stupac imali prvih
30 znakova iz tehnološkog opisa:
select IDENT, AKTIVNO, NAZIV, MPCENA, VPCENA, VPCENA2, SASTAVNICA,
Left(cast(TEHPOSTUPAK as varchar),30) as TEH
from MS
order by NAZIV
Do ovog nivoa su stvari jednostavne, jer smo pripremali podatke, kojih izvor
je u jednoj tablici. Problem bi bio ako bismo u prikazu htjeli prikazati
podatke, koji proizlaze iz više tablica, npr:
select M.IDENT,M.NAZIV,M.MPCENA,Z.ZALOGA, Z.SKLADISCE
from MS M
left join ZALOGA Z on Z.IDENT = M.IDENT
order by M.NAZIV
Iako je gornji redak sa stajališta SQL sintakse potpuno pravilan, za same
izborne tablice je neupotrebljiv.
 |
U select retcima možemo upotrebljavati samo jednu tablicu!
Ako želimo upotrijebiti podatke iz različitih tablica, u tu svrhu
moramo definirati view! |
Ako npr. želimo u postavke traženja uključiti zalihu idenata na veleprodajnom
skladištu, najprije napravimo view, koji nam prikupi sve željene podatke u jedan
recordset:
create view dl_ test _IdentLookup
as
select M.IDENT, M.NAZIV, M.KLASIF, M.VRSTAMS, M.AKTIVNO, Sum(Z.ZALOGA) as ZALOGA
from MS M
left join ZALOGA Z on M.IDENT = Z.IDENT
and Z.SKLADISCE = 'Veleprodajno skladište'
group by M.IDENT, M.NAZIV, M.KLASIF, M.VRSTAMS, M.AKTIVNO
*U ovom retku imamo jednu poteškoću - skladište, na kojem
tražimo zalihu je predefinirano i kao takvog ga ne možemo dinamički mijenjati.
Ako promijenimo ime skladišta, moramo promijeniti i taj view.
Ako imamo kreiran view, u polje Select upišemo običnu select naredbu
iz view-a, koja nam daje željene stupce
select IDENT,NAZIV,ZALOGA
from _IdentLookup
order by IDENT