2017-02-21 2 views
1

Ich habe eine Tabelle A, die ein paar Spalten mit Einträgen enthält. In Spalte 1 ist der Name der Kampagne, die mehr als einmal vorkommen kann (in der Tabelle). In Spalte 2 steht das Bestelldatum. In Spalte 3 steht die Anzahl der erfolgreich versandten Mails dieser Kampagne.Wählen Sie alle Zeilen aus der Tabelle aus, wo entre in Spalte 1 UND Spalte 2 identisch sind

Nun, was ich tun mag: Ich möchte alle Spalten auswählen, in dem der Eintrag in der Spalte 1 ist die gleiche und in der Spalte der Eintrag in Spalte 2 ist das gleiche (nur einer von ihnen ist nicht genug)

Hier ein Beispiel ist:

Zum Beispiel, wenn die Tabelle A enthalten:

|col1       ||col2   ||col3| 
+--------------------------------+---------------+------ 
|20161512_NL_Luxus_1_DE   ||2017-01-01  ||15 | 
|20161217_LC_YoBirthdayNo_A_CH ||2016-12-12  ||10 | 
|20161512_NL_Luxus_1_DE   ||2017-01-01  ||10 | 
|20161512_NL_SDT_4_DE   ||2017-02-11  ||1 | 
|20170117_SV_YoBirthdayYes_A_DE ||2017-02-03  ||25 | 
|20161512_NL_SDT_4_DE   ||2017-01-29  ||9 |   

ich eine Abfrage möchten, wählen wird:

|col1       ||col2   ||col3| 
+--------------------------------+---------------+------ 
|20161512_NL_Luxus_1_DE   ||2017-01-01  ||15 | 
|20161512_NL_Luxus_1_DE   ||2017-01-01  ||10 | 
Diese 210

, was ich bisher habe:

SELECT T1.* FROM TableA T1 JOIN 
(
    SELECT col1 
    FROM TableA 
    GROUP BY col1 
    HAVING COUNT(*) >= 2 AND col2=col2 
) T2 
ON T1.col1 = T2.col1; 

-> Aber das ist nicht richtig funktioniert ...

Antwort

1

Sie müssen auch GROUP BY das Datum:

SELECT T1.* 
FROM TableA T1 
JOIN (SELECT col1 
     FROM TableA 
     GROUP BY col1, col2 
     HAVING COUNT(*) >= 2) T2 ON T1.col1 = T2.col1; 
+0

funktioniert! Danke vielmals! – AbsoluteBeginner

Verwandte Themen