Abfrage mit mehreren Kriterien in einem Schritt

Watusimann

Erfahrenes Mitglied
Hallo zusammen

Im Moment bin ich seit ein paar Stunden am verzweifeln.
Ich möchte doppelte Einträge anzeigen lassen, jedoch mit einem Vergleich von zwei Spalten.
D.h. es soll wie unten aufgezeigt der erste und der dritte Datensatz angezeigt werden, da dort das Feld belegnummer und das Feld teilenummer übereinstimmt.
Code:
+-------------+-------------+----------+
| belegnummer | teilenummer | bewegung |
+-------------+-------------+----------+
| 11111       | 222         | out      |
+-------------+-------------+----------+
| 22222       | 333         | out      |
+-------------+-------------+----------+
| 11111       | 222         | in       |
+-------------+-------------+----------+
| 22222       | 444         | in       |
+-------------+-------------+----------+

Nun habe ich mich zwar mit HAVING auseinander gesetzt, und kann einzeln die doppelten Einträge sichten - nur leider nicht zusammen.

WENN belegnummer DOPPELT, DANN zeige Datensatz an... Habe ich bisher so gelöst, nur wie baue ich die zweite Doppelung ein :confused:
Code:
SELECT belegnummer FROM teilebewegungen GROUP BY belegnummer HAVING(COUNT(belegnummer) > 1)
So gehts nicht ...
Code:
SELECT 
    belegnummer, teilenummer 
FROM 
    teilebewegungen 
GROUP BY 
    belegnummer 
(HAVING(COUNT(belegnummer) > 1) AND HAVING(COUNT(teilenummer) > 1)

Ich danke schonmal im Voraus für Eure Hilfe.


Gruß Watusimann
 
Hi,

also ich weiß nicht ob ich dein Problem richtig verstanden habe,

aber du kannst bei GROUP BY auch mehrere Werte "übergeben"

Code:
GROUP BY  belegnummer, teilenummer, bewegung

Vielleicht hilft das...
 
Folgendes funktioniert bei mir:
SQL:
SELECT
	`belegnummer`,
	`teilenummer`,
	`bewegung`,
	(SELECT
		COUNT(`id`)
		FROM
			`belege` `b2`
		WHERE
			`b1`.`belegnummer` = `b2`.`belegnummer`
				AND
			`b1`.`teilenummer` = `b2`.`teilenummer`
		GROUP BY
			`belegnummer`,
			`teilenummer`) AS `count`
	FROM
		`belege` `b1`
	HAVING
		`count` > 1
 

Neue Beiträge

Zurück