2017-01-02 2 views
1

Ich versuchte, mehr zu denken, wie dies zu tun und durchsucht, aber keine Lösungen entsprechen, was benötigt wird. Hier ist die Tabelle, die einen Zeichnungsnamen aufzeichnet, der dynamisch abhängig vom Zeichnungsnamen ist, wobei jede Zeichnung wie in der Spalte Eingereicht und Aktualisiert in abgelehnt und mit den gleichen Daten wie mit Neu eingereicht eingefügt eingefügt wird. enter image description hereGet DISTINCT Zeilen mit dem gleichen Namen und maximale Anzahl

Was ich brauche, ist eine SQL-Abfrage, die die Zeilen, die den gleichen Zeichnungsnamen mit max Revisionsnummer dieses Zeichnungsnamens hat.

Wie Sie sehen Zeichnung Name1 max Revisionsnummer hat, die 1 ist dies nicht statisch und auch Zeichnung Name2 max Revisionsnummer hat, die 2

Alle Ideen, wie kann ich dies tun, Sorry, ich bin nicht so gut in SQL Query

+0

entfernte ich die inkompatiblen Datenbank-Tags. Bitte markieren Sie die Datenbank, die Sie wirklich verwenden. –

+0

Ich denke, es ist SQL und SQL Server Sorry –

+0

versuchen 'Zeichnungsname, seriell, max (Revision), submiiddate, projectid, pdocid, depid, Speicherort aus yurtable Gruppe von Zeichnungsname auswählen ' –

Antwort

1

Verwenden ROW_NUMBER Fensterfunktion

Select Top 1 with Ties * 
From yourtable 
Order by Row_number() Over(Partition by drawingname Order by revision desc) 
+0

Vielen Dank das funktioniert auch –

1

Sie müssen Gruppe von drawingname und wählen Sie die maximale Überarbeitungs, wie folgt aus:

SELECT drawingname, MAX(revision) 
FROM table 
GROUP BY drawingname 
+0

Vielen Dank Das funktioniert, aber wenn ich alle Spalten auswähle gab es mir Fehler –

1
SELECT T1.* 
FROM table T1 
JOIN (
    SELECT drawingname, MAX(revision) maxrevision 
FROM table 
GROUP BY drawingname 
) T2 
ON T1.drawingname= T2.drawingname and T1.revision = T2.maxrevision 
+0

Vielen Dank das funktioniert auch –

0
select * from (
    select *,row_numver()over(partition by drawingname order by revision desc) as rn from table1 
) as t where rn=1 
Verwandte Themen