ich eine SQL-AbfrageSQL-Abfrage eine Reihe und Konto für fehlende Zahlen zeigen
SELECT
Group_Id, MIN(Rec_Number) as RecStart, MAX(Rec_Number) AS RecEnd
FROM
Rec
WHERE
Group_Id != ''
GROUP BY
Group_Id
ORDER BY
Group_Id
Daraus ergibt sich die folgende Art der Ergebnisse haben.
Wenn jedoch Datensatz 3 fehlt (in der ersten Zeile zum Beispiel), wird die Abfrage offensichtlich nicht berücksichtigt. Was ich versuche, ist das folgende
92-2274 9222740001 9222740002
92-2274 9222740004 9222740018
92-2275 9222750001 9222750016
92-2275 9222750018 9222750026
etc...
So im Wesentlichen jedes Mal zu tun, das Skript einen Datensatz innerhalb der Gruppe fehlt sieht es beginnt eine neue Zeile, während in der Gruppe bleiben, bevor sie auf der nächsten Gruppe iterieren. Die group_Id
ist natürlich die ersten 6 Ziffern der rec_Number
würde ich auch diese gerne auch
92-2274 0001 0002
92-2274 0003 0004
tun oder sogar schneiden Sie es auf und entfernen die führende 0en auch, wenn möglich Ich weiß, über die Verwendung von Right (Rec_Number, 4)
aber da dies ein Float ist, scheint die automatische Umwandlung in eine Zeichenfolge etwas zu verwirren, da ich +009 viele Spalten habe, also nehme ich an, dass ich zuerst oder etwas casten muss. Diese spezielle Funktion könnte ich Excel nach der Tatsache, aber ich bin sicher, SQL könnte es tun, wenn der Typ die Abfrage schreiben war ein DBA und nicht ein unbeholfener Server-Admin (das bin ich!)
So gibt es eine Ich muss Sie warnen, dass das Standard-CTE oder die Verwendung von Funktionen wie Zeilennummer nicht funktionieren, da dies SQL Server 2000 ist - ja, es ist so alt!
Daher kämpfe ich um Beiträge auf Stack Overflow zu finden, die zutreffen. Viele von ihnen beginnen mit dem WITH-Schlüsselwort, was bedeutet, dass ich keines davon für den Anfang verwenden kann!
Ich denke, ich brauche eine IF ELse Art von Block, aber ich bin nicht sicher, welche Art von Methode kann ich verwenden, um die Abfrage zum Erstellen einer neuen Zeile jedes Mal eine fehlende gleichzeitige Anzahl im Gruppenbereich trifft.
Die endgültige Ausgabe zeigt mir die Bereiche der Datensätze in jeder Gruppe, während die fehlenden über eine neue Zeile jedes Mal hervorheben.
SQL Server 2000, aber ich benutze SSMS 2014 die Datenbank ist MS SQL 2000 –
Aktualisieren Sie Ihre Datenbank. Sie verwenden eine Datenbank, die seit April 2013 nicht mehr unterstützt wird. Zeit für ein Upgrade! –
Ich wünschte, ich könnte mir vertrauen, aber ich habe diese Option im Moment nicht, da es nicht meine Software ist. –