Wir verwenden eine auf ColdFusion basierende Housing-Software und verwenden SQL zum Erstellen von Datenbankfunktionen in unseren Berichten. Ich arbeite an einem benutzerdefinierten Bericht, um zu versuchen, eine Spalte von einer anderen zu subtrahieren: genauer COUNT_OF_INSPECTION_TYPE
von OCCUPANCY
subtrahieren. Die OCCUPANCY
Spalte auf dem folgenden Code basiert:SQL-Fehlerbericht - [Macromedia] [SQLServer JDBC-Treiber] [SQLServer] Ungültiger Spaltenname
CONVERT(INT
, CASE
WHEN tblHalls.HALLNAME = 'Hall1' THEN 198
WHEN tblHalls.HALLNAME = 'Hall2' THEN 430
WHEN tblHalls.HALLNAME = 'Hall3' THEN 333
END
)
Wenn ich versuche, eine neue Funktion OCCUPANCY - COUNT_OF_INSPECTION_TYPE
, erhalte ich eine Fehlermeldung:
Unable to invoke CFC - Error Executing Database Query. [Macromedia][SQLServer JDBC Driver][SQLServer]Invalid column name 'OCCUPANCY'.
Ich bin nicht sicher, ob ich dieses Recht habe zu erklären. Ich würde mich über jede Hilfe freuen, die Sie anbieten können.
Welche Art von Funktion genau? Welche Anwendung wirft den Fehler auf? Ohne mehr zu wissen, klingt dies wie ein SQL- oder Reporting-Problem. Es ist jedoch schwierig, ohne weitere Details zu beraten. – Leigh
Dies ist der Fehler, den ich erhalte FEHLERMELDUNG: CFC kann nicht aufgerufen werden - Fehler beim Ausführen der Datenbankabfrage. FEHLERDETAIL: [Macromedia] [SQLServer JDBC-Treiber] [SQLServer] Ungültiger Spaltenname "OCCUPANCY". – DANNYJ1
(Edit) Ohh ... Sie können einen * Alias * in einer Berechnung nicht auf der gleichen Ebene (dh vor der Definition) verwenden. Die Auswahlmöglichkeiten sind entweder a) Wiederholen der gesamten case-Anweisung in der Berechnung ODER b) Verwenden einer anderen Option wie ein CTE, abgeleitete Abfrage, der "apply-Operator usw.". Siehe http://sqlmag.com/blog/tip-apply-and-reuse-column-aliases – Leigh