Ich bin neu in SQL, ich benutze R die meiste Zeit. Aber die Anforderung ist, dass ich dies in SQL erfüllen
Ich habe eine Tabelle in MS SQL, wo jede Zeile ein "Aktivitätstyp" ist, der einen Wert von entweder 'A', 'B' oder 'C' hat. Ich habe insgesamt 40 Spalten und ich muss jede Zeile überprüfen, wenn die Daten korrekt sind. Ein kleines Beispiel unten hat wenige Spalten.
Die Regel ist, dass, wenn der Aktivitätstyp 'A' ist, alle Spalten, die MonitorA_
sind, einen Wert haben sollten, alles andere sollte NULL sein. Wenn der Aktivitätstyp 'B' ist, sollten alle MonitorB_-Spalten einen Wert haben, rest alle sollten NULL sein.
Im folgenden Beispiel sind Zeile 1 und Zeile 2 in Ordnung. Aber Zeile 3 und Zeile 4 haben Probleme. Das ist in Zeile 3, Aktivitätstyp ist 'B', aber es gibt einen Wert in der Spalte 'MonitorC_ID'.
Ich möchte in der Lage sein, eine neue Spalte mit einem Wert von True oder False zu erstellen, abhängig davon, ob es den Test bestanden hat.Erstellen Sie eine neue Spalte basierend auf den Werten einer anderen Spalte
| Activity Type | MonitorA_ID | MonitorA_Date | MonitorA_Region | MonitorB_ID | MonitorB_Date | MonitorB_Region | MonitorC_ID | MonitorC_Date | MonitorC_Region |
|---------------|-------------|---------------|-----------------|-------------|---------------|-----------------|-------------|---------------|-----------------|
| B | NULL | NULL | NULL | 1 | 21/10/1985 | Brisbane | NULL | NULL | NULL |
| A | 45 | 25/03/1986 | Gold Coast | NULL | NULL | NULL | NULL | NULL | NULL |
| B | NULL | NULL | NULL | 67 | 13/03/1959 | Dubai | 45 | NULL | NULL |
| C | NULL | 13/08/1964 | NULL | NULL | NULL | NULL | 82 | 13/08/1964 | Dubai |
Vielen Dank. Ich werde jetzt deine Logik versuchen. – MaxPD
Sie verwenden eine case-Anweisung mit einer Bedingung anstelle einer IF, weil ... – Dresden
Es hat funktioniert. Die Logik hat funktioniert. Ich habe nicht drei verschiedene Variablen für A, B und C erstellt. Eher nur eine lange verschachtelte CASE-Anweisung. Vielen Dank J Greene! Gott segne dich! – MaxPD