2016-11-09 3 views
0

Ich baue derzeit ein Datenbanksystem mit Oracle 10g. Ich habe eine Abfrage entwickelt, die eine Instanz eines Ereignisses, den Kunden, der das Ereignis angefordert hat, und die Mitarbeiter, die dem Ereignis zugeordnet sind, anzeigt. Meine Abfrage gibt alle korrekten Ergebnisse zurück, aber ich wollte wissen, ob es eine Möglichkeit gibt, die sich wiederholenden Daten zu löschen. Für jeden zugewiesenen Mitarbeiter gibt das Ergebnis die Ereignis- und Kundendetails zurück. Ich habe ein Bild beigefügt. Gibt es eine Möglichkeit, die Kunden- und Ereignisdetails nur einmal in ihren Spalten und die entsprechenden Datensätze der in diesen Spalten zugeordneten Mitarbeiter zurückzugeben?Entfernen Sie sich wiederholende Daten von Oracle SQL * Plus-Abfrage

Das ist mein Code

COLUMN E_ID FORMAT A7 
COLUMN E_NAME FORMAT A20 
COLUMN E_STIME FORMAT A30 
COLUMN E_FTIME FORMAT A30 
COLUMN E_COST FORMAT 9999999.99 
COLUMN ET_ET_ID FORMAT A5 
COLUMN V_V_ID FORMAT A5 
COLUMN C_C_ID FORMAT A5 
COLUMN C_FNAME FORMAT A10 
COLUMN C_LNAME FORMAT A10 
COLUMN S_S_ID FORMAT A5 
COLUMN S_FNAME FORMAT A10 
COLUMN S_LNAME FORMAT A10 
COLUMN S_TASK FORMAT A20 
COLUMN S_CNUM FORMAT 9999999 
COLUMN ST_DESC FORMAT A20 
SELECT E_ID, E_NAME, EVENT.C_C_ID ,C_FNAME, C_LNAME, E_STIME, E_FTIME, E_COST, EVENT.ET_ET_ID, EVENT.V_V_ID, EVENT_STAFF.S_S_ID, S_FNAME, S_LNAME, S_TASK, S_CNUM, STAFFTYPE.ST_DESC 
FROM CUSTOMER, EVENT, EVENT_STAFF, STAFF, STAFFTYPE 
WHERE EVENT.E_ID = 'E000004' 
AND EVENT.C_C_ID = CUSTOMER.C_ID 
AND EVENT.E_ID = EVENT_STAFF.E_E_ID 
AND EVENT_STAFF.S_S_ID = STAFF.S_ID 
AND STAFF.ST_ST_ID = STAFFTYPE.ST_ID; 

Die Ergebnisse in SQL plus als enter image description here gezeigt

Antwort

2

Das ist, was die BREAK ON directive in SQL * Plus ist für. In Ihre COLUMN Formatierungsanweisungen:

BREAK ON E_ID ON E_NAME ... 

alle Spalten Auflistung, wo Sie Duplikate weglassen wollen. Vergessen Sie nicht, ORDER BY zu verwenden, um sicherzustellen, dass Datensätze für jedes Ereignis und Kunden in der richtigen Reihenfolge zurückgegeben werden.

+0

danke funktioniert perfekt –

Verwandte Themen