2009-02-27 9 views
1

Wie kann ich meine SQL-Datenbank abfragen und alle doppelten Aufträge finden, bei denen ein Kunde mehr als einmal bestellt hat?Wie finde ich doppelte Bestellungen pro Kunde?

+0

Wie über einige Hinweise über das, was Ihre Kunden und Aufträge und Auftragspositionen Tabellen aussehen? –

+0

Zum Schließen geschlossen. Keine echte Frage. –

+0

Seien Sie nicht ganz so unhöflich ... Die Frage ist in der Tat nicht sehr klar, aber er könnte es einfach schwer haben zu erklären, was er auf Englisch meint. –

Antwort

6

Keine super klare Frage, aber ich verstehe das Wesentliche. Ich weiß nicht, was Ihre Datenbank aussieht, aber Ihre Abfrage würde wie folgt aussehen:

SELECT customer_id, count(*) FROM orders 
GROUP BY customer_id 
HAVING count(*) > 1 
3
SELECT customerId, productId, count(productId) 
FROM CustomerOrders 
GROUP BY customerId 
HAVING count(productId) > 1 
1

Eine Plattform, Version würde helfen. So würde eine Beispieltabelle sein. Also hier ist ein Beispielauftragstabelle:

SQL> select * from orders; 

    CUST_ID ORDER_ID ORDER_DAT 
---------- ---------- --------- 
    1  1 25-FEB-09 
    1  2 24-FEB-09 
    1  3 23-FEB-09 
    2  4 24-FEB-09 
    2  5 23-FEB-09 
    2  6 22-FEB-09 
    3  7 23-FEB-09 
    9  8 22-FEB-09 
    9  9 21-FEB-09 
    4  10 22-FEB-09 
    4  11 21-FEB-09 
    4  12 20-FEB-09 
    5  13 21-FEB-09 
    5  14 20-FEB-09 
    5  15 19-FEB-09 
    6  16 20-FEB-09 
    11  17 19-FEB-09 
    10  18 18-FEB-09 
    7  19 19-FEB-09 
    7  20 18-FEB-09 
    7  21 17-FEB-09 
    8  22 18-FEB-09 
    8  23 17-FEB-09 
    8  24 16-FEB-09 

24 rows selected. 

Die folgenden ausgewählten Werke auf dieser Tabelle für eine einfache Ausgabe:

1* select cust_id, count(*) from orders group by cust_id having count(*) > 1 
SQL>/

    CUST_ID COUNT(*) 
---------- ---------- 
    1  3 
    2  3 
    4  3 
    5  3 
    8  3 
    7  3 
    9  2 

7 rows selected. 
Verwandte Themen