Laden...

SQL: Datensetze auslesen

Erstellt von Xqgene vor 17 Jahren Letzter Beitrag vor 17 Jahren 2.216 Views
X
Xqgene Themenstarter:in
2.051 Beiträge seit 2004
vor 17 Jahren
SQL: Datensetze auslesen

da meine SQL-Kenntnisse schon etwas angestaubt sind, frage ich mal die Experten. 🙂

also so ich habe eine Tabelle mit mehreren Datensätzen (Artikelbewegungsdaten)
Jede Artikelnummer kann in der Tabelle mehrfach vorkommen.
nun möchte ich aus der Tabelle die Datensätze so auslesen, dass es jede Artikelnummer nur in Mal in dem Ergebnis gibt (die anderen Daten/Spalten sind zwar uninteressant, müssen aber auch mit ausgegeben werden)

also aus der Tabelle:


[Item No.] [Description] ....
1             Abc
1             Yxz
2             Asd
3             Qqq
1             Aaa 
2             Dfe
...

soll:


[Item No.] [Description] ....
1             Abc
2             Asd
3             Qqq
...

??

L
497 Beiträge seit 2006
vor 17 Jahren

Einfach ein "GROUP BY ItemNo" an das SQL-Statement dranhängen

Sarkusmus ist, wenn nichts mehr hilft, außer Lachen.

J
3.331 Beiträge seit 2006
vor 17 Jahren

Je nach gewünschtem Verhalten kommt auch in Frage:

SELECT DISTINCT ItemNo ORDER BY ItemNo

Jürgen

X
Xqgene Themenstarter:in
2.051 Beiträge seit 2004
vor 17 Jahren

Danke für eure Antworte. Leider geht das nicht, denn mit DISTINCT bzw. GROUP BY werden die Datensätze nicht über eine einzelne Spalte gruppiert. Da muss man schon entweder alle Spalten für die Gruppierung einbeziehen oder auf einige Spalten verzichten. Beides ist aber nicht erwünscht.

N
4.644 Beiträge seit 2004
vor 17 Jahren

Versuch mal ( ausgehend von SQL Server ):

DECLARE @item int
DECLARE MyCursor CURSOR FOR
SELECT item FROM Table GROUP BY item HAVING COUNT(item) > 0
OPEN MyCursor
FETCH MyCursor INTO @item
WHILE @@Fetch_Status = 0
   BEGIN
    SELECT TOP 1 * FROM Table where item = @item
   FETCH MyCursor INTO @item
   END
CLOSE MyCursor
DEALLOCATE MyCursor

Bevor es jemand anprangern möchte. Ich weiß, Cursor sind nicht das beste Mittel zwecks Performance.

X
Xqgene Themenstarter:in
2.051 Beiträge seit 2004
vor 17 Jahren

Original von Noodles
Bevor es jemand anprangern möchte. Ich weiß, Cursor sind nicht das beste Mittel zwecks Performance.

Ups....lösch....lösch...lösch... 😁