Vorheriges Nächstes

Task 11:  Nur Kunden mit Bestellungen oder Zahlungen anzeigen

Die Datenbank enthält Kunden, für die weder Bestellungen noch Zahlungen verzeichnet wurden. Die Abfrage für den Kundenbericht gibt alle Kunden zurück. Wenn Sie den Bericht ausführen, gibt es Kundenzeilen, die nur die Spaltenüberschriften für die Tabellen 'Orders' (Bestellungen) und 'Payments' (Zahlungen) anzeigen (siehe Abbildung 12-23).

Abbildung 12-23: Bericht ohne Bestellungs- oder Zahlungsdaten für einen Kunden

Abbildung 12-23  Bericht ohne Bestellungs- oder Zahlungsdaten für einen Kunden

Sie können Kunden ohne Bestellungen oder Zahlungen ausschließen, indem Sie die Abfrage für den Kundenbericht ändern.

1  
2  
3  
  WHERE
  EXISTS
  (SELECT Orders.customerNumber
  FROM Orders
  WHERE Customers.customerNumber =
  Orders.customerNumber)
  ODER
  EXISTS
  (SELECT Payments.customerNumber
  FROM Payments
  WHERE Customers.customerNumber =
  Payments.customerNumber)
Die Klausel WHERE EXISTS überprüft, ob in den Tabellen 'Orders' (Bestellungen) und 'Payments' (Zahlungen) Werte für 'customerNumber' vorhanden sind, die mit den Werten für 'customerNumber' in der Tabelle 'Customers' (Kunden) übereinstimmen. Nur Zeilen mit übereinstimmenden Werten für "customerNumber" werden ausgewählt. Die vollständige Abfrage sollte wie in Abbildung 12-24 gezeigt aussehen.

Abbildung 12-24: Aktualisierte Abfrage SELECT in 'Datensatz bearbeiten'

Abbildung 12-24  Aktualisierte Abfrage SELECT in 'Datensatz bearbeiten'
4  
5  

(c) Copyright Actuate Corporation 2013