Einzelnen Beitrag anzeigen

hirnstroem

Registriert seit: 21. Sep 2005
297 Beiträge
 
Delphi 2006 Professional
 
#1

Unterschiedliches Verhalten einer Abfrage unter Access / ADO

  Alt 16. Jan 2008, 10:24
Datenbank: Access • Version: kA • Zugriff über: ADO
'loha Folks,

wird untenstehende Abfrage direkt in Access ausgeführt, so wird jeder Datensatz, welcher für die Felder 'BuildingIDShutter1' und 'BuildingIDShutter2' einen anderen Wert als Null enthält, doppelt angezeigt respektive jeder Datensatz mit einem Wert in 'BuildingIDShutter1' oder 'BuildingIDShutter2' wird einzeln aufgelistet, was auch meine Absicht ist.

Führe ich dieselbe Abfrage in meiner Applikation über ADO aus, so wird mir jeweils nur ein Datensatz angezeigt, wo eigentlich zwei sein müssten und ich finde nicht heraus weshalb dies so ist.

Gibt es unter Umständen eine Option, welche, wenn aktiviert, solch doppelte Datensätze herausfiltert oder etwas in dieser Art?

Anbei noch die Abfrage:

SQL-Code:
SELECT *, BuildingIDShutter1 as ShutterBuilding
FROM
(Room INNER JOIN
(Floor INNER JOIN
(DeviceType INNER JOIN
(Building INNER JOIN
(Application INNER JOIN Device ON [Application].[ApplicationID] =[Device].[ApplicationID])
ON [Building].[BuildingID] =[Device].[BuildingIDShutter1])
ON [DeviceType].[DeviceTypeID] =[Device].[DeviceTypeID])
ON [Floor].[FloorID] =[Device].[FloorIDShutter1])
ON [Room].[RoomID] =[Device].[RoomIDShutter1])
WHERE
DeviceType LIKE :DeviceType
AND
Application LIKE :Application
AND
Building LIKE :Building
AND
Floor LIKE :Floor
AND
Room LIKE :Room
AND
Active = True
AND
BuildingIDShutter1 <> NULL
ORDER BY Building ASC, Floor ASC, Room ASC, Description ASC;

UNION ALL

SELECT *, BuildingIDShutter2 as ShutterBuilding
FROM
(Room INNER JOIN
(Floor INNER JOIN
(DeviceType INNER JOIN
(Building INNER JOIN
(Application INNER JOIN Device ON [Application].[ApplicationID] =[Device].[ApplicationID])
ON [Building].[BuildingID] =[Device].[BuildingIDShutter2])
ON [DeviceType].[DeviceTypeID] =[Device].[DeviceTypeID])
ON [Floor].[FloorID] =[Device].[FloorIDShutter2])
ON [Room].[RoomID] =[Device].[RoomIDShutter2])
WHERE
DeviceType LIKE :DeviceType
AND
Application LIKE :Application
AND
Building LIKE :Building
AND
Floor LIKE :Floor
AND
Room LIKE :Room
AND
Active = True
AND
BuildingIDShutter2 <> NULL
ORDER BY Building ASC, Floor ASC, Room ASC, Description ASC;
Grüsse
hirnstroem
inde deus abest
  Mit Zitat antworten Zitat