Forums Neueste Beiträge
 

SQL Server bringt 389 Zeilen zurück, Access 19

21/09/2007 - 14:15 von Manfred Büttner | Report spam
Hallo NG,
ich muss schon wieder einmal Fragen, weil die Verzweiflung nàher rückt...

ICH MÖCHTE ALSO JEWEILS VON DER RECHTEN TABELLE DIE DATEN!
Im SQL-Server wenn ich allerdings RIGHT JOIN eingebe stellt mir dieser immer
auf Right Outer Join um.
Wie kann ich das àndern????

Die "gleiche" Abfrage in Access und umgestellt auf SQL-Server (2005) bringt
mir in Access 19 Zeilen und im SQL-Server 389 Zeilen zurück!
Access:
"SELECT Printadresse.*, Plàne.*, PlanIndex.*, Verteiler.*, ZVerteiler.*,
xPlan_Planart.* " & _
"FROM xPlan_Planart RIGHT JOIN (Printadresse RIGHT JOIN
(Plàne RIGHT JOIN ((ZVerteiler RIGHT JOIN Verteiler ON
ZVerteiler.ZuweisVerteilerID = Verteiler.ZuweisVerteilerID) RIGHT JOIN
PlanIndex ON Verteiler.ID = PlanIndex.IndexID) ON Plàne.PlanID =
PlanIndex.ID) ON Printadresse.ProNummer = Plàne.Projekt) ON
xPlan_Planart.PlanartID = Verteiler.PlanartID " & _
"Where (((Plàne.Plannummer) = "MEZHWG33'))" & _
"ORDER BY Plàne.Plannummer, PlanIndex.Planindex,
PlanIndex.Tektur, ZVerteiler.Verteiler, xPlan_Planart.Planart"

SQL Server:
SELECT TOP (100) PERCENT dbo.Printadresse.Nummer,
dbo.Printadresse.Zeile1, dbo.Printadresse.Zeile2, dbo.Printadresse.Zeile3,
dbo.Printadresse.[Sachbearbeiter/Gruppe],
dbo.Printadresse.Projektbeteiligte, dbo.Printadresse.Notizen,
dbo.Printadresse.aktuell,
dbo.Printadresse.eam, dbo.Printadresse.evon,
dbo.Printadresse.gam, dbo.Printadresse.gvon, dbo.Printadresse.Ordner,
dbo.Printadresse.ProNummer,
dbo.Printadresse.prz_01, dbo.Printadresse.prz_02,
dbo.Printadresse.prz_03, dbo.Printadresse.prz_04, dbo.Printadresse.prz_05,
dbo.Printadresse.prz_06, dbo.Printadresse.prz_07,
dbo.Printadresse.prz_08, dbo.Printadresse.prz_09, dbo.Printadresse.prz_10,
dbo.Printadresse.prz_11, dbo.Printadresse.prz_12,
dbo.Printadresse.prz_13, dbo.Printadresse.Plankopf,
dbo.Printadresse.PlanIndex,
dbo.Printadresse.PlanVerteiler,
dbo.Printadresse.PlanSchema, dbo.Printadresse.IndexSchema,
dbo.Printadresse.DateiIdxSchema,
dbo.Printadresse.VerteilerSchema,
dbo.Printadresse.DateiVrtSchema, dbo.Plàne.PlanID, dbo.Plàne.Projekt,
dbo.Plàne.Plannummer, dbo.Plàne.pln_01,
dbo.Plàne.pln_02, dbo.Plàne.pln_03, dbo.Plàne.pln_04,
dbo.Plàne.pln_05, dbo.Plàne.pln_06, dbo.Plàne.pln_07, dbo.Plàne.[Index],
dbo.Plàne.Gezeichnet, dbo.Plàne.Datum,
dbo.Plàne.Geprueft, dbo.Plàne.Pruef_Datum, dbo.Plàne.Masstab,
dbo.Plàne.Datei, dbo.Plàne.Format,
dbo.Plàne.Hoehe, dbo.Plàne.Breite, dbo.Plàne.Flaeche,
dbo.Plàne.[PNR-PLNR], dbo.Plàne.Plotdatei, dbo.PlanIndex.IndexID,
dbo.PlanIndex.ID,
dbo.PlanIndex.Planindex AS [Planindex.Planindex],
dbo.PlanIndex.Tektur, dbo.PlanIndex.Bezeichnung, dbo.PlanIndex.Datum AS
[Planindex.Datum],
dbo.PlanIndex.Name, dbo.PlanIndex.Datei AS
[Planindex.Datei], dbo.PlanIndex.[Plot-Datei], dbo.PlanIndex.idx_01,
dbo.PlanIndex.idx_02,
dbo.PlanIndex.idx_03, dbo.PlanIndex.idx_04,
dbo.PlanIndex.idx_05, dbo.Verteiler.VerteilerID, dbo.Verteiler.ID AS
[Verteiler.ID],
dbo.Verteiler.ZuweisVerteilerID,
dbo.Verteiler.Ausfertigungen, dbo.Verteiler.Datum AS [Verteiler.Datum],
dbo.Verteiler.PlanartID,
dbo.Verteiler.Name AS [Verteiler.Name],
dbo.Verteiler.vrt_01, dbo.Verteiler.vrt_02, dbo.Verteiler.vrt_03,
dbo.Verteiler.vrt_04, dbo.Verteiler.vrt_05,
dbo.Verteiler.vrt_06, dbo.Verteiler.vrt_07,
dbo.Verteiler.abgerechnet, dbo.Verteiler.Abrechnung_Datum,
dbo.ZVerteiler.ProjektID,
dbo.ZVerteiler.ZuweisVerteilerID AS
[ZVerteiler.ZuweisVerteilerID], dbo.ZVerteiler.Verteiler,
dbo.ZVerteiler.Reihenfolge,
dbo.xPlan_Planart.PlanartID AS
[xPlan_Planart.PlanartID], dbo.xPlan_Planart.Planart,
dbo.xPlan_Planart.BetragProQM
FROM dbo.xPlan_Planart RIGHT OUTER JOIN
dbo.Printadresse RIGHT OUTER JOIN
dbo.Plàne RIGHT OUTER JOIN
dbo.ZVerteiler RIGHT OUTER JOIN
dbo.Verteiler ON dbo.ZVerteiler.ZuweisVerteilerID =
dbo.Verteiler.ZuweisVerteilerID RIGHT OUTER JOIN
dbo.PlanIndex ON dbo.Verteiler.ID =
dbo.PlanIndex.IndexID ON dbo.Plàne.PlanID = dbo.PlanIndex.ID ON
dbo.Printadresse.ProNummer = dbo.Plàne.Projekt ON
dbo.xPlan_Planart.PlanartID = dbo.Verteiler.PlanartID
WHERE (dbo.Plàne.Plannummer = N'MEZHWG33')
ORDER BY dbo.Plàne.Plannummer, [Planindex.Planindex], dbo.PlanIndex.Tektur,
dbo.ZVerteiler.Verteiler, dbo.xPlan_Planart.Planart


DANKE FÜR JEDEN HINWEIS.

Manfred Büttner
 

Lesen sie die antworten

#1 Peter Doering
21/09/2007 - 14:45 | Warnen spam
Hallo,

Manfred Büttner wrote:

ICH MÖCHTE ALSO JEWEILS VON DER RECHTEN TABELLE DIE DATEN!



Bei so vielen Tabellen fehlt mir etwas der Ueberblick. Deshalb die Frage:

Welche Tabelle(n) moechtest du aendern?
Was ist dein Ziel, weshalb du Outer Joins verwendest?

Im SQL-Server wenn ich allerdings RIGHT JOIN eingebe stellt mir dieser immer
auf Right Outer Join um.
Wie kann ich das àndern????



Right Join = Right Outer Join (du kannst das in Access genauso schreiben).

Access:
"SELECT Printadresse.*, Plàne.*, PlanIndex.*, Verteiler.*, ZVerteiler.*,
xPlan_Planart.* " & _
"FROM xPlan_Planart
RIGHT JOIN (Printadresse
RIGHT JOIN (Plàne
RIGHT JOIN ((ZVerteiler
RIGHT JOIN Verteiler
ON ZVerteiler.ZuweisVerteilerID = Verteiler.ZuweisVerteilerID)
RIGHT JOIN PlanIndex
ON Verteiler.ID = PlanIndex.IndexID)
ON Plàne.PlanID = PlanIndex.ID)
ON Printadresse.ProNummer = Plàne.Projekt)
ON xPlan_Planart.PlanartID = Verteiler.PlanartID " & _
"Where (((Plàne.Plannummer) = "MEZHWG33'))" & _
"ORDER BY Plàne.Plannummer, PlanIndex.Planindex,
PlanIndex.Tektur, ZVerteiler.Verteiler, xPlan_Planart.Planart"

SQL Server:
SELECT TOP (100) PERCENT dbo.Printadresse.Nummer,
[...]
FROM dbo.xPlan_Planart
RIGHT OUTER JOIN dbo.Printadresse
RIGHT OUTER JOIN dbo.Plàne
RIGHT OUTER JOIN dbo.ZVerteiler
RIGHT OUTER JOIN dbo.Verteiler
ON dbo.ZVerteiler.ZuweisVerteilerID = dbo.Verteiler.ZuweisVerteilerID
RIGHT OUTER JOIN dbo.PlanIndex
ON dbo.Verteiler.ID = dbo.PlanIndex.IndexID
ON dbo.Plàne.PlanID = dbo.PlanIndex.ID
ON dbo.Printadresse.ProNummer = dbo.Plàne.Projekt
ON dbo.xPlan_Planart.PlanartID = dbo.Verteiler.PlanartID
WHERE (dbo.Plàne.Plannummer = N'MEZHWG33')
ORDER BY dbo.Plàne.Plannummer, [Planindex.Planindex], dbo.PlanIndex.Tektur,
dbo.ZVerteiler.Verteiler, dbo.xPlan_Planart.Planart

Die "gleiche" Abfrage in Access und umgestellt auf SQL-Server (2005) bringt
mir in Access 19 Zeilen und im SQL-Server 389 Zeilen zurück!



Falls du den Unterschied anhand RecordCount ermittelt haben solltest, schau
mal hier: http://support.microsoft.com/kb/209909/en-us (gilt fuer
RecordsAffected und RecordCount)

Falls die sichtbaren DS sich tatsaechlich unterscheiden, pruef nach, ob du
die Daten wirklich aus der gleichen Quelle liest. Alles schon passiert ;-).

Gruss - Peter

Ich beantworte keine Fragen per Email.
Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com

Ähnliche fragen