Avatar billede staf Nybegynder
04. juli 2008 - 14:28 Der er 2 kommentarer

Automatisk tilføjelse i tabel via. relationer.

Hejsa,

Jeg har 2 tabeller med bla. flg. relationer.

Tabel 1 - klager
--------------------
Klage nr. (pk)
Retur no  (fk)
......
......
......
--------------------



Tabel 2 - retursager
---------------------
Retur nr.. (pk)
Klage nr.  (fk)
......
......
......
---------------------



I tabel 2 kan man via en formular tilknytte et klage nr. når man opretter en retursag. Det jeg gerne vil er at når man åbner en side der viser alle klager (tabel 1) bliver der i denne tabel automatisk tilføjet det retur nr. fra tabel 2 hvor klage nr. fra tabel 1 og 2 er det samme.

Et eks.

Der oprettes en ny retursag som automatisk får retur nr. 123. Den tilhørende klage eksistere allerede i ”klager” idet den er oprettet på forhånd. Når retursagen oprettes knyttes det tilhørende klage nr. derfor til den netop oprettede post i tabel 2. Dette gøres via. en html formular.
Den tilhørende klagesag har fx. klage nr. 76. Dvs. man således har oprettet en post i Tabel 2 hvor retur nr. (Det unikke ID i denne tabel) er 123 og det unikke ID som repræsentere den tilhørende klagesag fra tabel 1 (klage nr) - nr 76 tilføjes til posten.

Hvordan får jeg automatisk skrevet dette ind i Tabel 1 den anden vej. Således at når man loader siden der viser data fra tabel 1 automatisk gøres flg:
Slå op i tabel 2 -> hvis der under et retur nr. er tilknyttet et klage nr., tag da det pågældende returnr. Og sæt det ind i tabel 1 der hvor klage nr. i tabel 1 og 2 er ens.

Håber det er til at forstå. Har prøvet at skære det godt og grundigt ud men det er svært at forklare.

Jeg går ud fra jeg skal have fat i noget join halløj, men kan ikke lige gennemskue SQL`en.
Bruger i øvrigt:
ASP
Access
SQL


På forhånd tak for hjælpen.
Avatar billede HenrikSjang Nybegynder
08. juli 2008 - 20:17 #1
Jeg tror nok jeg forstår hvad du mener :)

Og hvis jeg gør, så er det korrekt at det er en join du er ude i. Ved at bruge en "LEFT OUTER JOIN", så kommer alle rækker fra den første (dvs den venstre) tabel altid med. Det vil sige alle klagerne. Ved at lave en outer join, så kommer det tilhørende retur-info med, men kun hvis det findes. Ellers fyldes felterne bare med NULL.

Sådan her:

select *
from klager
left outer join retursager on klager.returno = retursager.returnr
Avatar billede staf Nybegynder
09. juli 2008 - 11:26 #2
Hej Sjang,
tak for dit svar. Der er imidlertid et lille problem. Måske er det i virkeligheden mig der ikke har udtrykt mig korrekt. Sagen er jo at returno ikke findes i klager før der er oprettet en retursag. Sp. er om man ivirkeligheden skulle indsætte returnr i klager samtidig med at retursagen oprettes?? Som det er nu når en ny retursag oprettes så vælger man selv i en select hvilken klage nr. denne skal knyttes til. Når så hele insert skydes af kunne man samtidig tage det netop valgte klage nr. som man har knyttet til retursagen. Dette specifikke klagenummer skal så findes i "klager" tabellen og i netop denne record skal indsættes ID`et (retur nr.) på den retursag som netop er oprettet. Derved ville retur nr. være tilstede i klage tabellen og det kan således vises med en simpel select i det øjeblik man vælger at se en liste med alle klager.

Det virker lidt kryptisk og jeg har ingen ide om hvordan dette kan laves. Hele ideen med det er at jeg ikke skal ind manuelt og skrive retur nr. i klage tabellen hver gang der oprettes en ny returseddel men at denne automatisk skrives ind når nu brugeren i formularen angiver klage nr.
Håber dette er klarere. Det syntes jeg selv. Tror problemet lidt er at det er sådan lidt omvendt rækkefølge end man normalt ser!?

På forhånd tak for hjælpen.

P.S. skyder gerne langt flere point i puljen hvis det er. Det vigtigste for mig er at finde en løsning ;)

Mvh. Stephan
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester