17. februar 2006 - 11:52Der er
17 kommentarer og 1 løsning
Forespørgsel virker ikke (INNER JOIN)
Jeg har fået til opgave at lave en DST pakke og mente at det nemmeste ville være at bruge SQL Server's Import data funktion, men jeg er stødt ind i problemer. Dataene kommer fra Navision tabeller (vha. C/ODBC driver).
Det går fint med at vælge Source og Destination databaser, men når jeg skal vælge hvilke data der skal overføres (vha. Query Builderen i SQL Server Management Console), så vil den ikke parse min Query!
Her er SQL'en (den parser fint i SQL Query Analyzer)
Select "Købslinie"."Bilagsnr_", "Købslinie"."Type", "Købslinie"."Nummer", "Købslinie"."Beskrivelse", "Købslinie"."Anlægsbogføringstype", "Købslinie"."FinansAntal", "Købslinie"."Afdelingskode", "Købshoved"."Virksomheds-bogføringsgruppe", "Købslinie"."Produkt-bogføringsgruppe", "Købslinie"."Købspris" FROM "Købshoved" INNER JOIN "Købslinie" ON "Købshoved"."Nummer" = "Købslinie"."Bilagsnr_" WHERE "Købslinie"."Bilagstype"=1 AND "Købslinie"."Nummer" Is Not Null order by "Købslinie"."Bilagsnr_"
Med kunstig intelligens skaber HP’s nye OmniBook X 14 en unik og skræddersyet brugeroplevelse målrettet dem, der ønsker høj ydeevne og intelligente funktioner
select [Købslinie].[Bilagsnr_], [Købslinie].[Type], [Købslinie].[Nummer], [Købslinie].[Beskrivelse], [Købslinie].[Anlægsbogføringstype], [Købslinie].[FinansAntal], [Købslinie].[Afdelingskode],[Købshoved].[Virksomheds-bogføringsgruppe], [Købslinie].[Produkt-bogføringsgruppe], [Købslinie].[Købspris] FROM [Købshoved] INNER JOIN [Købslinie] ON [Købshoved].[Nummer] = [Købslinie].[Bilagsnr_] WHERE [Købslinie].[Bilagstype]=1 AND [Købslinie].[Nummer] Is Not Null order by [Købslinie].[Bilagsnr_]
Jeg kan sagtens hente data fra kun én tabel, uanset om der er æ, ø eller å i tabel/felt-navnene. Jeg har forsøgt med ", [] og uden - ingen forskel. Fejlmeddelelsen:
Unexpected error occoured. The provider has returned an error result without an error message.
select "Købslinie"."Bilagsnr_", "Købslinie"."Type", "Købslinie"."Nummer", "Købslinie"."Beskrivelse", "Købslinie"."Anlægsbogføringstype", "Købslinie"."FinansAntal", "Købslinie"."Afdelingskode", "Købshoved"."Virksomheds-bogføringsgruppe", "Købslinie"."Produkt-bogføringsgruppe", "Købslinie"."Købspris" FROM "Købshoved", "Købslinie" WHERE "Købslinie"."Bilagstype"=1 AND "Købslinie"."Nummer" Is Not Null order by "Købslinie"."Bilagsnr_"
Farvekoderne er korrekte, og betyder at udtrykkene er genkendte, men sikrer ikke syntaksen.
Det lader faktisk til at det er join'et der gør det. Hvilken datatype er de to felter som du joiner på, [Købshoved].[Nummer] og [Købslinie].[Bilagsnr_]? Jeg mener nemlig ikke at MSSQL tillader joins på alle datatyper, fx. er jeg i tvivl om float og decimal datatyperne.
Kan du oprette et viwe i navision, som man kan det i MSSQL? Så vil du derefter kunne importere resultatet af dette view, og derigennem få et du søger.
select [Købslinie].[Bilagsnr_], [Købslinie].[Type], [Købslinie].[Nummer], [Købslinie].[Beskrivelse], [Købslinie].[Anlægsbogføringstype], [Købslinie].[FinansAntal], [Købslinie].[Afdelingskode],[Købshoved].[Virksomheds-bogføringsgruppe], [Købslinie].[Produkt-bogføringsgruppe], [Købslinie].[Købspris] FROM [Købshoved], [Købslinie] WHERE [Købshoved].[Nummer] = [Købslinie].[Bilagsnr_] AND [Købslinie].[Bilagstype]=1 AND [Købslinie].[Nummer] Is Not Null order by [Købslinie].[Bilagsnr_]
Ovenstående er jo en Cross join (Cartesian join), som vil give alle resultater fra den ene tabel, multipliceret med antallet af resultater fra den anden tabel.
ja, det gør det (virker som et inner join). Tak for hjælpen, ldanielsen
Synes godt om
Ny brugerNybegynder
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.