2017-03-14 1 views
0

Ich habe die folgende Frage genähert, um als ein Cursor gelöst zu werden, obwohl ich gesehen habe, Effizienz macht es als eine Mehrfachverbindung. Wie kann ich das über einen Cursor lösen und sollte ich mich darum kümmern, es über Excel zu extrahieren?Cursor vs Standard-SQL

RecordID EmpID FirstName LastName HiredDate FiredDate 
1111  1  John  Flanagan 1/02/2013 1/02/2014 
2222  1  Michael  Richards 1/01/2014 1/02/2015 
3333  3  Peter  Johnson  1/08/2014 1/07/2016 
4444  3  Jim   Crow  1/09/2014 1/02/2017 
5555  3  Own   Wilson  1/010/2014 1/03/2015 

Hier ist mein Versuch mit SQL zunächst.

select EmpID, count(RecordID), HiredDate 
from Employer 
group by EmpID 
order by DESC. 

Notwendigkeit, eine Abfrage zu schreiben, die jeden einzelnen Arbeitgeber und für jede Zeile gibt, umfasst den max Mitarbeiter, die von der Gesellschaft und das Datum der letzten Vermietung gemietet wurden.

Ich wurde gebeten, es als ein Cursor zu schreiben, wie sie die obigen Daten Zeile für Zeile aus Excel extrahieren wollten.

+0

Welche DBMS verwenden Sie? Postgres? Orakel? –

+0

Die Verwendung von 'group by' ist ungültig SQL. Außerdem: Bitte [bearbeiten] Sie Ihre Frage und fügen Sie die erwartete Ausgabe anhand Ihrer Beispieldaten hinzu. –

+0

Warum teilen sich verschiedene Personen die gleiche EmpID? – jarlh

Antwort

0

Wenn EmpID Arbeitgeber-ID ist, dass Sie fast da sind:

SELECT EmpID, COUNT(RecordID), MAX(HiredDate) 
FROM Employer 
GROUP BY EmpID 
ORDER BY EmpID ASC 

Diese erhalten Sie die Ausgabe, die Sie benötigen, aber ich bin nicht sicher, was Sie ... Ich bin davon ausgegangen EmpID bestellen wollte .

Ich habe auch SQL Server angenommen.

+0

'ASC' ist Standard und muss daher nicht spezifiziert werden – Rahul

+0

Hallo @Rahul, ich habe den Unterschied zum Code in der ursprünglichen Frage von OP hervorgehoben. Aber ansonsten stimme ich voll und ganz zu. – Mack

+0

siehe oben Kommentare über den Cursor, aber danke für die Hilfe bei der Zusammenstellung der alternativen SQL-Version. – penfold255

Verwandte Themen