Priprema podataka je identična za sve tri postavke traženja.
Postavkama određujemo SQL naredbu, koja nam vrati kolone tabele
(recordseta), koje prikazujemo u padajućem ekranu u programu.
Srce podešavanja traženja artikala je oblikovanje odgovarajuće select
stavke, koja vraća odgovarajuće podatke. Pogledajmo najjednostavniji primjer,
koji je zadan u PANTHEON-u.
select acIdent, acActive, acName, anRTPrice, anWSPrice, anWSPrice2, anPrtPrice
from tHE_SetItem
order by acIdent
Ova naredba nam kao rezultat vraća 7 kolona, u kojima je šifra artikla, status, naziv, te
sve vrste cijena.
Pogledajmo, kako bi stavku nadogradili, kako bi kao 8. kolonu imali prvih 30
znakova iz tehnološkog opisa:
select acIdent, acActive, acName, anRTPrice, anWSPrice, anWSPrice2, anPrtPrice,
Left(cast(acTechProcedure as varchar),30) as TEH
from tHE_SetItem
order by acIdent
Do ovog nivoa je sve jednostavno, jer uvijek pripremamo podatke, čiji je izvor u
jednoj tabeli. Problem se javlja, ako bi želeli u prikazu da prikažemo podatke,
koji proizilaze iz više tabela, npr:
select M.acIdent,M.acName,M.anRTPrice,Z.anStock, Z.acWarehouse
from tHE_SetItem M
left join tHE_stock Z on Z.acIdent = M.acIdent
order by M.acName
Iako je gornja naredba sa stajališta SQL sintakse potpuno pravilna, za
izborne tabele je neupotrebljiva.
 |
U select naredbama možemo upotrebiti samo jednu tabelu!
Ako želimo upotrebiti podatke iz različitih tabela, u tu svrhu moramo
da definišemo
view! |
Ako npr. želimo u postavku traženja da uključimo zalihu artikla na
veleprodajnom skladištu
prvo uradimo view, koji nam prikuplja sve željene podatke u jednom recordsetu:
create view dl_ IdentLookup
as
select M.acIdent, M.acName, M.acClassif, M.acSetOfItem, M.acActive, Sum(Z.anStock) as ZALOGA
from tHE_SetItem M
left join tHE_Stock Z on M.acIdent = Z.acIdent
and Z.acWarehouse = 'Veleprodajno skladišče'
group by M.acIdent, M.acName, M.acClassif, M.acSetOfItem, M.acActive
*U ovoj naredbi vidimo jednu poteškoću - skladište, na
kojem sakupljamo zalihu je zadano i kao takvo ga ne možemo dinamički
mijenjati. Ako promijenimo ime skladišta, moramo popraviti ovaj view.
Kada imamo kreiran view u polje Select upišemo uobičajenu select
stavku iz view-a, koja nam daje željene kolone
select acIdent,acName,anStock from _IdentLookup
order by acIdent