webForumDet fria alternativet

Hjälp med oracle-kod

2 svar · 225 visningar · startad av reka1

reka1Medlem sedan sep. 2001650 inlägg
#1

Hej!
Har skrivet ett par satser till Oracle har ingen möjlighet att kontrollera om dom fungerar.

Undrar därför om nån som är mkt haj på Oracle har lust att slänga ett öga och se om dom är korrekta.

select telefonnr, personnr from Adress where telefonnr like '060%' sort by adress;
tar fram telefonnr och personnr på alla telenr som börjar med 060 o sorterar efter adress

select distinct * from adress sort by personnr desc;
tar fram allt från adress men sorterar bort eventuella dubletter. sorterar i personnr i fallande ordning

select * from avdelning where anstallningsnr is not null;
tar fram alla poster som ej har null-värde i kolumnen anstallningsnr

select fnamn, enamn, titel, kontor from anstalld where kontor='fk7200' or kontor='fk0800';
tar fram alla fnamn, enamn, titel o kontor där värdena fk7200 eller fk0800 finns i kolumnen kontor

select * from forsakringstagare where namn like 'D%' or personnrid <= 2;
tar fram alla poster där namnet börjar på D eller personnrid är 2 eller högre.

select * from anstalld, gor, forsakringstagare, far order by anstallningsnr;
tar fram alla poster från 4 tabeller o sorterar efter anst.nt

select max(anstallningsnr) from anstalld;
visar det nyaste anställningsnumret

select * from adress, forsakringstagare, utbetalning where aktnr='2' OR aktnr='3';
visar värden från tabeller där akt-nr är 2 eller 3

select * from forsakringstagare, gor, anstalld where anstallningsnr <= 1;
visar vilken försäkringstagare som den ansällde med nr 1 eller högre har hand om

LarsGMedlem sedan dec. 200012 464 inlägg
#2

sort by ==> order by

select * from anstalld, gor, forsakringstagare, far order by anstallningsnr;

tar fram alla poster från 4 tabeller o sorterar efter anst.nt

Din fråga kommer att returnera alla möjliga kombinationer av data från de 4 tabellerna och det lär bli en hel del.

Du behöver göra union eller join i stället. Hur ser tabellerna ut ?

select * from adress, forsakringstagare, utbetalning where aktnr='2' OR aktnr='3';
visar värden från tabeller där akt-nr är 2 eller 3

select * from forsakringstagare, gor, anstalld where anstallningsnr <= 1;
visar vilken försäkringstagare som den ansällde med nr 1 eller högre har hand om

Det är samma problem här, att du kanske behöver ha något join-villkor.

reka1Medlem sedan sep. 2001650 inlägg
#3

Tackar för svar! :-)
Angående tabellerna ser dom ut så här:

http://home.bip.net/reine.karlsson/sql/tabeller.txt

Inserten ser ut på detta viset:

http://home.bip.net/reine.karlsson/sql/insert.txt

129 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)