Alex_winf01 Geschrieben 13. September 2010 Teilen Geschrieben 13. September 2010 Hallo, innerhalb eines Select-Befehles habe ich folgende Konstruktion: SpalteA + SpalteB + SpalteC & wenn(SpalteD = 1;"Text";"") D. h. vorne kommt die Aufsummierung der Spalten A, B und C und dann wenn SpalteD > 0 ist ein beliebiger Text, ansonsten soll nur die Aufsummierung der Spalten A, B und C erscheinen. Folgende Konstruktion habe ich probiert: SpalteA + SpalteB + SpalteC + Case WHEN SpalteD = 1 Then 'Text' Else '' End AS xyz, SpalteA, SpalteB und SpalteC kommen aus der selben Abfrage wie xyz. Leider bekomme ich eine Fehlermeldung, dass SpalteA, SpalteB und SpalteC ungültig sind. Was mache ich da falsch? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MartinSt Geschrieben 13. September 2010 Teilen Geschrieben 13. September 2010 Die Aufsummierung ist ein numerischer Wert, den du nicht direkt mit einem String verketten kannst, sondern den du vorher erst als String formatieren mußt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Alex_winf01 Geschrieben 13. September 2010 Autor Teilen Geschrieben 13. September 2010 @ MartinSt Du meinst die Methoden CONCATENATE (ausdruck || ausdruck), convert bzw. cast? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MartinSt Geschrieben 13. September 2010 Teilen Geschrieben 13. September 2010 Sowas in der Richtung; ich weiß ja nicht auf welches DB-System du dich beziehst? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Alex_winf01 Geschrieben 13. September 2010 Autor Teilen Geschrieben 13. September 2010 @ MartinSt wir setzen eine Oracle-Datenbank ein, Version 10g Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Stefan87 Geschrieben 14. September 2010 Teilen Geschrieben 14. September 2010 (bearbeitet) Das sollte eigentlich kein Problem sein, wenn die Spalten vom Typ her auch NUMBER und nicht VARCHAR sind ? Es gibt allerdings noch ein Problem wenn du diesen Code verwendest --------------------------------- SpalteA + SpalteB + SpalteC + Case WHEN SpalteD = 1 Then 'Text' Else '' End AS xyz, --------------------------------- denn nach dem addieren von A, B und C brauchst du ein || und nicht ein + da sonst die Spalte D addiert wird .... was nicht geht wenn es sich um einen Text handelt ... --------------------------------- SpalteA + SpalteB + SpalteC || Case WHEN SpalteD = 1 Then 'Text' Else '' End AS xyz, --------------------------------- Hoffe das dir das hilft Bearbeitet 14. September 2010 von Stefan87 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.