Spørringar
Når du har registrert testdata i skjemaene dine vil du gjerne ha utskrifter og rapporter.
For å få gode rapporter som har med den informasjonen som vi treng, brukar vi spørringar, utsnitt (visning,views) og enten
rapportveiviser eller lager våre eigne rapportar ved hjelp av tekstbehandlaren eller rekneark.
I denne rettleiinga kjem eg ikkje til å komme inn på korleis du lagar eigne raportar i writer og rekneark - kun ved bruk
av spørringar, utsnitt og rapportvegvisaren.
Spørring med data frå ein tabell
For dei som tidlegare har brukt MS Access ser dette velkjent ut, men dersom du skal lage litt meir avanserte
spørringar vil du for oppdage at her er store forskjellar.
Klikk på spørringar og velg Lag spørring i utformingsvisning Vi skal først lage ei enkel
spørring der vi lagar ei bokliste sortert på FORFATTERETTERNAVN og deretter på BOKTITTEL.
Klikk på BOK og velg "Legg til". Lukk deretter denne dialogboksen. Vi kan legge til felt på 2 måtar:
- Vi kan ta feltet vi skal ha og dra det ned med musa - slipp når nedrullingsknappen forsvinn.
- Klikk på nedrullingsknappen under felt og velg feltet
Ta med felta FORFATTER_ETTERNAMN, FORFATTER_FORNAMN pg TITTEL, sorter deretter på FORFATTER_ETTERNAMN
og på TITTEL. Spørringa skal sjå slik ut før vi køyrer den:
Øverst i vinduet har du to rader med knapper - Nest bortest i øverste rada har du ein knapp med ei grønn hake - trykk på den
for å køyre spørringa. Lagre den som "Bokliste Sortert". Lukk og start "Lag spørring i utformingsvisning" igjen.
Spørring med data frå fleire tabellar
Vi skal no lage ei adresseliste over alle låntakarane. Då treng vi tabellane Låntakar og Postadresse. Legg til desse og lukk dialogen
for "Legg til tabeller".
Lag no ei spørring som ser slik ut:
Avgrensing i spørringane
- Ynskjer vi t.d. å berre vise dei som bur i Volda kan vi legge inn Volda som kriterium under Poststad eller 6100 under Postnummer.
- Vil du ha berre dei som har etternamn på O - legg du LIK O% under kriterium for Etternamn.
- % er wildcard for etterfølgande tegn, er det eit tegn du er usikker på brukar du ?
- Du kan bruke engelske spørreuttrykk - dei vert oversatt til norsk (bokmål eller nynorsk), men skriv du bokmål i
nynorskversjonen eller nynorsk i bokmålsversjonen får du probelm
Tabellen nedanfor er henta frå hjelpa i OpenOffice og viser kva avgrensingar du kan bruke i spørringane.
|
OpenOffice.org command
|
SQL command
|
Meaning
|
Condition is satisfied if...
|
|
IS EMPTY
|
IS NULL
|
is null
|
... The field name is empty. For
Yes/No fields with three states, this command automatically
queries the undetermined state (neither Yes nor No).
|
|
IS NOT EMPTY
|
IS NOT NULL
|
is not empty
|
... the field name is not empty.
|
|
LIKE
(placeholder * for any number of
characters
placeholder ? for exactly one
character)
|
LIKE
(%
placeholder for any number of characters
Placeholder _ for exactly one
character)
|
is an element of
|
... the data field contains the
indicated expression. The (*) placeholder indicates whether the
expression x occurs at the beginning of (x*), at the end of (*x)
or inside the field content (*x*). You can enter as a placeholder
in SQL queries either the SQL % character or the familiar (*) file
system placeholder in the OpenOffice.org interface.
The * or % placeholder stands for
any number of characters. The question mark (?) in the
OpenOffice.org interface or the underscore (_) in SQL queries is
used to represent exactly one character.
|
|
NOT LIKE
|
NOT LIKE
|
Is not an element of
|
... the field name does not contain
the specified expression.
|
|
BETWEEN x AND y
|
BETWEEN x AND y
|
falls within the interval [x,y]
|
... the field name contains a value
that lies between the two values x and y.
|
|
NOT BETWEEN x AND y
|
NOT BETWEEN x AND y
|
Does not fall within the interval
[x,y]
|
... the field name contains a value
that does not lie between the two values x and y.
|
|
IN (a; b; c...)
Note that the semicolons are used
as separators in all value lists!
|
IN (a, b, c...)
|
contains a, b, c...
|
... the field name contains one of
the specified expressions a, b, c,... Any number of expressions
can be specified, and the result of the query is determined by an
Or link. The expressions a, b, c... can be either numbers or
characters
|
|
NOT IN (a; b; c...)
|
NOT IN (a, b, c...)
|
does not contain a, b, c...
|
... the field name does not contain
one of the specified expressions a, b, c,...
|
|
= TRUE
|
= TRUE
|
has the value True
|
... the field name has the value
True.
|
|
= FALSE
|
= FALSE
|
has the value false
|
... the field name has the value
false.
|
Spørring som finn ut kva bøker som er utlånte på ein spesiell dag
Lag ei ny spørring i utformingsvisning - ta med tabellane BOK og BOKLAAN. Spørringa kan
først sjå slik ut - då viser den alle utlån og innleveringar:
Vi ynskjer no først å avgrense slik at vi kun ser dei som ikkje er innleveret. Det gjer vi ved
å skrive ER TOM under kriterium på Innleveringsdato. For å finne ut kva for bøker som vart lånt ut ein dato -
set vi datoen som kriterium under Utlånsdato t.d. 28.05.06. Dersom du vil at brukaren skal skrive inn
datoen når spørringa køyrast - set du eit ? i feltet for kriterium under dato. Lagre spørringa med ein dato i
kriteriumsfeltet for utlånsdato - lagre som Utlånte bøker 28 mai
Kor mange bøker vart lånt ut 28. mai?
Lukk spørringane dine - du ser no alle spørringane dine med namn - høgreklikk på den siste vi lagde og velg
Lag som utsnitt (på engelsk: View) Du får då opp ein boks som det står tabell1 i - endre dette til t.d. Utlånte bøker.
Når du no skal lage ei ny spørring vil du sjå at den siste spørringa di som du lagra som utsnitt er komen inn blant tabellane. Det vil seie
at vi kan lage ei spørring basert på ei anna spørring. Velg denne og Lukk vinduet.
Hent ned feltet Utlånsdato to gongar - under funksjon vel du på den første gruppe og på den andre Antall. Køyr spørringa og du får opp kor
mange bøker som var lånt ut på denne datoen. Om du ikkje hadde avgrensa på data ville du fått opp dei ulike utlånsdatoane og kor mange bøker som var utlånt
på dei ulike dagane.
Litt forskjellig "småsnacks"
Concat
Av og til har vi behov for å kunne vise fleire felt i t.d. ein listboks i eit skjema. For å få til det
må vi lage ei concat spørring som vil brukar i listboksen. Desse bør du lage ved hjelp av "Lag spørring i SQL visning".
For å slå saman t.d. FORNAMN og ETTERNAMN frå LÅNTAKAR-tabellen lagar vi ei slik spørring:
Pass på at SQL-knappen er "inntrykt" når du køyrer spørringa - elles verkar den ikkje.
For ordens skuld - setninga som eg skreiv inn var: SELECT ("FORNAMN"|| ' '|| "ETTERNAMN") as NAMN, "KUNDENUMMER" FROM "LAANTAKER" "LAANTAKER" ORDER BY "ETTERNAMN" ASC
Rekneoperasjonar
Dersom felta er definert som tal (heiltal, desimalta e.l.) kan du bruke vanlege rekneoperasjonar som + - / og *. Dette kan
du bruke frå utformingsvisning t.d. om du har felta Pris og Antall kan du finne Total ved å skrive;
Pris*Total pass berre på at du gir feltet eit Alias. Hentar du felta frå ulike tabellar kan det vere lurt
å bruke tabellnamnet slik:Vare.Pris*Bestilling.Antall.
Rapportar
Rapportvegvisaren er relativt enkel - du kan ikkje lage rapportar basert på meir enn ei spørring
eller ein tabell. Derfor er det viktig at du kan lage spørringar som tek med den informasjonen som du vil ha
med i rapporten.
Eg anbefaler deg å prøve deg litt fram.
Til slutt skal eg vise ein makro for å lage ein meny
|