Avatar billede mercutio Nybegynder
19. oktober 2004 - 23:10 Der er 2 kommentarer

en sql der giver fejl

SELECT osadm.OSTEBH.BIDENT,osadm.OSTEBH.LevNr,osadm.OSTEBH.Btype,osadm.OSTEBH.FaktBest,osadm.OSTEBH.Status,osadm.OSTEBH.Bestilnr,osadm.OSTEBH.Faktnr,osadm.OSTEBH.F_B_Dato,osadm.OSTEBH.BelobMM,osadm.OSTEBH.BelobXM,osadm.OSTEBH.Bident,osadm.OSTEBH.F_B_Dato FROM osadm.OSTEBH WHERE (osadm.OSTEBH.LEVNR BETWEEN '0000000000' AND '0000000000' AND osadm.OSTEBH.FORVBOGFDATO BETWEEN '20041019' AND '20041019' AND STATUS IN( '50','56','52' , '55' , '62' , '60','67','69','68' , '70','77','71','78','79' ) ) UNION SELECT osadm.OSTEBH.BIDENT,osadm.OSTEBH.LevNr,osadm.OSTEBH.Btype,osadm.OSTEBH.FaktBest,osadm.OSTEBH.Status,osadm.OSTEBH.Bestilnr,osadm.OSTEBH.Faktnr,osadm.OSTEBH.F_B_Dato,osadm.OSTEBH.BelobMM,osadm.OSTEBH.BelobXM,osadm.OSTEBH.Bident,osadm.OSTEBH.F_B_Dato FROM osadm.OSTEBH, osadm.OSTEBK WHERE osadm.OSTEBH.BIDENT = osadm.OSTEBK.BIDENT AND (osadm.OSTEBK.LEVNR BETWEEN '0000000000' AND '0000000000' AND osadm.OSTEBH.FORVBOGFDATO BETWEEN '20041019' AND '20041019' AND STATUS IN( '50','56','52' , '55' , '62' , '60','67','69','68' , '70','77','71','78','79' ) ) ORDER BY F_B_DATO DESC



Problemet er at F_B_DATO både findes i ostebh og ostebk så jeg får at vide sqllen ikke kan fyres af fordi F_B_DATO er flertydig. Jeg kan ikke skrive et tabel navn foran så får jeg også en fejl. Nogle der har en ide?
Avatar billede arne_v Ekspert
19. oktober 2004 - 23:16 #1
Det bør (indsæt grimt ord efter eget valg) virke med:

ORDER BY osadm.OSTEBH.F_B_Dato DESC
Avatar billede vigilante Nybegynder
19. oktober 2004 - 23:20 #2
burde det ikke være en join som denne? (det ville jeg have lavet i DB2)

select

osadm.OSTEBH.BIDENT
,osadm.OSTEBH.LevNr
,osadm.OSTEBH.Btype
,osadm.OSTEBH.FaktBest
,osadm.OSTEBH.Status
,osadm.OSTEBH.Bestilnr
,osadm.OSTEBH.Faktnr
,osadm.OSTEBH.F_B_Dato
,osadm.OSTEBH.BelobMM
,osadm.OSTEBH.BelobXM
,osadm.OSTEBH.Bident
,osadm.OSTEBH.F_B_Dato

FROM osadm.OSTEBH
WHERE (osadm.OSTEBH.LEVNR BETWEEN '0000000000' AND '0000000000' AND osadm.OSTEBH.FORVBOGFDATO BETWEEN '20041019' AND '20041019' AND STATUS IN( '50','56','52' , '55' , '62' , '60','67','69','68' , '70','77','71','78','79' ) )

UNION

SELECT  osadm.OSTEBH.BIDENT
,osadm.OSTEBH.LevNr
,osadm.OSTEBH.Btype
,osadm.OSTEBH.FaktBest
,osadm.OSTEBH.Status
,osadm.OSTEBH.Bestilnr
,osadm.OSTEBH.Faktnr
,osadm.OSTEBH.F_B_Dato
,osadm.OSTEBH.BelobMM
,osadm.OSTEBH.BelobXM
,osadm.OSTEBH.Bident
,osadm.OSTEBH.F_B_Dato

FROM osadm.OSTEBH left join osadm.OSTEBK on (osadm.OSTEBH.BIDENT = osadm.OSTEBK.BIDENT) where (osadm.OSTEBK.LEVNR BETWEEN '0000000000' AND '0000000000' AND osadm.OSTEBH.FORVBOGFDATO BETWEEN '20041019' AND '20041019' AND STATUS IN( '50','56','52' , '55' , '62' , '60','67','69','68' , '70','77','71','78','79' ) ) ORDER BY osadm.OSTEBH.F_B_DATO DESC
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