2016-05-06 5 views
0

Sagen wir, ich habe eine Tabelle zurück analysieren (lässt sie Audit nennen) in SQL ServerWie eine Zeile aus einer T-SQL-Abfrage

AuditID int primary not null, 
Name varchar(300), 
AuditCount int, 
ActualCount int, 
AuditDate datetime 

Die Tabelle in es eine beliebige Anzahl von Zeilen mit einem bestimmten AuditID haben könnte . Ich möchte die Tabelle durchlaufen, eine AuditID geben und den AuditCount mit dem ActualCount vergleichen. Wenn sie nicht gleich sind, mache ich etwas anderes ... aber zuerst, wie kann ich jeweils eine Zeile abrufen und die zurückgegebenen Werte vergleichen?

+0

Sie können zu einer Zeit durch eine Reihe laufen, aber die meisten Leute würden eine Set-Abfrage zu tun dies in SQL verwenden. Siehe http://stackoverflow.com/questions/24168/why-are-relational-set-based-queres-better-than-cursors. – APH

+3

Sie müssen konkreter angeben, was * etwas * sein könnte: einen Datensatz einfügen? einen Datensatz löschen? eine Tabelle erstellen? etwas zusammenrechnen? – trincot

+0

ist meine Antwort hilfreich. Wenn ja, als Antwort markieren – Dejan

Antwort

1

Versuchen Sie folgendes:

SELECT 
    AuditID, 
    Name, 
    AuditCount, 
    ActualCount, 
    AuditDate 
FROM Audit 
WHERE AuditCount <> ActualCount; 

oder

SELECT 
     AuditID, 
     Name, 
     case when AuditCount <> ActualCount then 'Do something' 
     else 'do something else' end as myColumn, 
     AuditDate 
FROM Audit; 
Verwandte Themen