15. april 2004 - 01:43Der er
37 kommentarer og 1 løsning
Query returnerer nul records, probs. med relationer?
Jeg har en query som skal liste regningsadresserne for hver sag i en tabel.
Hver sag er enten koblet på en kendt institution eller bliver registreret som UdenForOrdning, hvor adressen indtastes på den enkelte sag. Registreres sagen under en institution er her også to muligheder: Enten skal regningen sendes til institutionen selv eller til den overordnede abonnent (der kan være flere institutioner under hver abonnent).
Stillet op i lidt pseudokode, uden hensyn til semantik :)...
If Sager.UFO = true Then RegningsAdresse = UFOer.Adresse Else If Institution.RegningTil = institution Then RegningsAdresse = Institution.Adresse Else RegningsAdresse = Abonnent.Adresse
Inden jeg begyndte at tilføje UFO funktionen virkede alt fint vha. nedenstående for hvert regningsfelt:
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
hmm, det lyder mærkeligt, da uanset hvad du skriver i en kolonne-definition, så burd du få det samme antal records (med mindre at der er tale om en 'Group by'-forespørgsel). Det hele burde afhænge af kriterierne. Kan du enten vise SQL'en eller give et link til et screendump til selve forespørgslen i designvisning?
Så ligger databasen klar, jeg sender et link på opfordring til dem der skulle have lyst. Jeg kan desværre ikke sende DB'en via det her lorte dial-up, da min webmail konstant timer ud...
Der er to queries som er interessante mht. dette spørgsmål:
RegningsAdresse - som virker nu, men skelner mellem regning til institution eller abonnent RegningsAdresse_testUFO - som gerne skulle kunne give den korrekte adresse, hvad enten regningen skal sendes til en UFO, inst. eller abn.
Det slår mig, at fejlen jo ikke skyldes nogle af dine kriterier i kolonnerne (hvilket jeg jo heller ikke kunne forstå), men at du har tilføjet 2 tabeller til forespørgslen i forhold til den, som virkede. Disse 2 nye tabeller sætter i høj grad begrænsning på outputtet, da den alm. join mellem hver tabel kræver at der er en forekomst på begge sider.
Prøv i stedet at indsætte denne SQL:
SELECT Sager.ID, Institutioner.ID, IIf([UFO]=True,[UFOer]![Navn],IIf([RegningTil]='institution',[Institutioner]![Navn],[Abonnenter]![Navn])) AS RegningNavn, IIf([UFO]=True,[UFOer]![Kontakt],IIf([RegningTil]='institution',[Institutioner]![Kontakt],[Abonnenter]![Kontakt])) AS RegningAtt, IIf([UFO]=True,[UFOer]![Adresse1],IIf([RegningTil]='institution',[Institutioner]![Adresse1],[Abonnenter]![Adresse1])) AS RegningAdr1, IIf([UFO]=True,[UFOer]![Adresse2],IIf([RegningTil]='institution',[Institutioner]![Adresse2],[Abonnenter]![Adresse2])) AS RegningAdr2, IIf([UFO]=True,[UFOer]![Postnr],IIf([RegningTil]='institution',[Institutioner]![Postnr],[Abonnenter]![Postnr])) AS RegningPostnr, IIf([UFO]=True,[UFOer]![By],IIf([RegningTil]='institution',[Institutioner]![By],[Abonnenter]![By])) AS RegningBy FROM ((Abonnenter INNER JOIN Institutioner ON Abonnenter.RekvKode = Institutioner.Abonnent) LEFT JOIN Sager ON Institutioner.ID = Sager.Institution) LEFT JOIN UFOer ON Sager.Sagsnr = UFOer.SagsNr;
Efter at have studeret dine tabeller nærmere, kan jeg se, at fejlen ligger i din UFOer-tabel - nærmere betegnet i feltet Sagsnr. Som dit opslag (komboboks) er defineret, så er det ID fra Sager som du gemmer i tabellen i stedet for Sagsnr. Så hvis du fjerner ID fra rækkekilden og ændrer Antal kolonner til 1 og fjerner kolonnebredderne, så burde du kunne rette værdierne i Sagsnr.
Herefter vil det virke.
Du kan selvfølgelig også ændre UFO'er.Sagsnr til et numerisk felt (hvilket vil være det mest optimale), men så skal du ændre Join-forbindelsen mellem de 2 tabeller også.
Thomas, jeg forstår simpelthen ikke hvad du mener! :) ...
"Som dit opslag (komboboks) er defineret, så er det ID fra Sager som du gemmer i tabellen i stedet for Sagsnr". - Hvilken komboboks mener du? I hvilken form? Så vidt jeg kan se indeholder UFOer-tabellen de rigtige data på den sag jeg har sat kryds i UFO ved.
"Du kan selvfølgelig også ændre UFO'er.Sagsnr til et numerisk felt (hvilket vil være det mest optimale), men så skal du ændre Join-forbindelsen mellem de 2 tabeller også." - Det ville jeg også gerne men de insisterede på at sagsnr skal have et punktum mellem år og sagsnummer, derfor er det gemt som text :(
Jeg har lige prøvet at sende dig db'en, men fik en fejl tilbage om at du ikke kunne modtage den på rasmusrask@mailme.dk. Jeg kan ikke længere huske hvad jeg lavede og hvad jeg ikke lavede ;o)
Men den komboboks, som jeg snakker om, er det opslag, som er defineret på feltet Sagsnr på UFOer-tabellen.
Det andet spørgsmål jeg snakkede om: http://www.eksperten.dk/spm/491619, don't worry Terry I haven't rated it that high - Yeah, Thomas sure got a lot if points, but he probably earned it :)
Hej Thomas, jeg har modtaget DB'en fra dig og tak for det. Jeg har desværre ikke haft tid til at kigge på det endnu, da mine sidste to dage har været booket. På søndag har jeg afsat noget tid til at lure hvad du har sendt mig!
Det kan godt være at jeg er helt blank, men kan simpelthen ikke få det til at virke - heller ikke det du sendte! Der vises ingen records i queryen! :(
Jeg opdagede en fejl i UFO formen, den gemte ID istedet for Sagsnr i feltet Sagsnr, det. Så slettede jeg alle records i UFOer og forsøgte at gøre en sag til UFO igen. Efter at indtaste oplysningerne og verifiere at de står korrekt tjekker jeg queryen som returnerer nul records.
Belært at hvad du tidligere sagde omkring joins prøvede jeg så at lave om på joins'ne, så de gik fra hhv. Sager til UFOer og Sager til Institutioner men fik en ambigous joints fejl.
Jeg forstå ikke hvorfor det virker hos dig og ikke hos mig? Synes også at jeg har tjekket flere gange at lookup på sagsnr. i UFO'er tabllen er bundet til Sagsnr feltet.
hmm, der går lidt lang tid mellem, så det er lidt svært at huske alle detaljer om problemet fra gang til gang.
Men de 2 db'er, som jeg sendte dig skulle gerne give én post i forespørgslen "RegningsAdresse_testUFO". Har du sammenkædet korrekt tl den backend, som jeg sendte?
Hey, fandt ud af det nu. Det du lavede fik faktisk queryen til at virke - nu var det min UFO form som gemte sagsnr istedet for Sager.ID, brugte to forskellige kriterier! :)
Er lige ved at se om jeg nu kan implementere det samme i min udviklings DB (har lavet noget kode siden jeg sendte den til dig nemlig).
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.