Ich habe es geschafft, diese AbfrageT-SQL: Partitionen auswählen, die mehr als 1 Zeile haben
SELECT
PartGrp,VendorPn, customer, sum(sales) as totalSales,
ROW_NUMBER() OVER (PARTITION BY partgrp, vendorpn ORDER BY SUM(sales) DESC) AS seqnum
FROM
BG_Invoice
GROUP BY
PartGrp, VendorPn, customer
ORDER BY
PartGrp, VendorPn, totalSales DESC
Um eine Ergebnismenge wie diese zu erhalten zu verwenden. Eine Liste der Verkaufsdatensätze, gruppiert nach einer Gruppe, einer Produkt-ID (VendorPn
), einem Kunden, den Verkäufen des Kunden und einer Sequenznummer, die durch die Gruppe und die Produkt-ID partitioniert ist.
PartGrp VendorPn Customer totalSales seqnum
------------------------------------------------------------
AGS-AS 002A0002-252 10021013 19307.00 1
AGS-AS 002A0006-86 10021013 33092.00 1
AGS-AS 010-63078-8 10020987 10866.00 1
AGS-SQ B71040-39 10020997 7174.00 1
AGS-SQ B71040-39 10020998 2.00 2
AIRFRAME 0130-25 10017232 1971.00 1
AIRFRAME 0130-25 10000122 1243.00 2
AIRFRAME 0130-25 10008637 753.00 3
HARDWARE MS28775-261 10005623 214.00 1
M250 23066682 10013266 175.00 1
Wie kann ich das Ergebnis filtern, um nur auf Zeilen zurück, die mehr als 1 seqnum
haben? Ich würde das Ergebnis setzen möchte ähnliche
PartGrp VendorPn Customer totalSales seqnum
------------------------------------------------------------
AGS-SQ B71040-39 10020997 7174.00 1
AGS-SQ B71040-39 10020998 2.00 2
AIRFRAME 0130-25 10017232 1971.00 1
AIRFRAME 0130-25 10000122 1243.00 2
AIRFRAME 0130-25 10008637 753.00 3
Aus dem ersten Ergebnismenge Beispiel zu sehen, nur die Zeilen mit VendorPn
„B71040-39“ und „0130-25“ hatte mehrere Kunden das Produkt kaufen. Alle Produkte, die nur einen Kunden hatten, wurden entfernt. Beachten Sie, dass meine gewünschte Ergebnismenge nicht einfach seqnum > 1
ist, weil ich immer noch die erste seqnum
pro Partition brauche.
sollte in der Lage sein, eine weitere äußere Abfrage Schicht und dann, um durch die alliiert t.seqnum. Du musst die innere Ordnung umlegen. – PCSgtL