Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Oracle
  Fehler in Select IF ELSE

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Fehler in Select IF ELSE (1204 mal gelesen)
LarsB
Mitglied



Sehen Sie sich das Profil von LarsB an!   Senden Sie eine Private Message an LarsB  Schreiben Sie einen Gästebucheintrag für LarsB

Beiträge: 446
Registriert: 13.05.2003

Windows 7 Prof. 64-Bit
Tarox-Workstation mit Xeon 8 Core CPU mit 3.60 GHz
24 GB RAM
NVIDIA Quadro 4000
AutoCAD Map 2019
MapEdit
AutoCAD 2019

erstellt am: 17. Dez. 2013 14:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

ich habe meiner Meinung nach eine recht einfache IF THEN Anweisung in Oracle. Das dachte ich zumindest.

Hintergrund: Ich habe eine Fläche. Diese Fläche wird mit einem Wert multipliziert. Dieser Wert darf aber nicht kleiner als 1 sein, denn dann wird die Fläche kleiner.

Also: Die Fläche ist 100m²

Jetzt wird diese Fläche bewertet. Beispiel: Heute hat die Fläche den Wert 1 (A), in drei Jahren den WERT 3 (B)

Jetzt habe ich in einer SELECT-Anweisung stehen:

SELECT
FLAECHE * (B - A) as AUFWERTUNG
FROM TABELLE

Das Problem ist aber. WENN A = 1 ist und B = 1 ist. Dann ergibt die Rechnung = 0.

Das sollte nicht sein.

SELECT
(FLAECHE *(IF (B - A) < 1 THEN (B - A) = 1 ELSE (B - A) = (B - A) END If)) as AUFWERTUNG
FROM TABELLE

So funktioniert es bei mir nicht. Im Moment gibt es: ORA-00907: Rechte Klammer fehlt

Irgendwie sehe ich aber auch den Wald vor lauter Bäumen nicht mehr.

Hat jemand eine Axt für mich? 

Gruß Lars

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Stelli1
Moderator
Verm.-Ing.


Sehen Sie sich das Profil von Stelli1 an!   Senden Sie eine Private Message an Stelli1  Schreiben Sie einen Gästebucheintrag für Stelli1

Beiträge: 1521
Registriert: 17.08.2005

Map 2000-2012, Rasterdesign
MapGuide 6.5 - 2012
Oracle
Autodesk Topobase 2-2012
VS6, VS.net

erstellt am: 19. Dez. 2013 18:46    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für LarsB 10 Unities + Antwort hilfreich

Hallo Lars,

aus deinem Beispiel werde ich nicht schlau.
Mir scheint das da die falsche Syntax am Werk ist.
Hier ein Beispiel:

Code:
select
    fid,
    ID_MATERIAL ,
    case when ID_MATERIAL = 43 then
        'DA ' | | diameter_nominal
    else
        'DN ' | | diameter_nominal
    end as nennweite

from wa_pipe;



Wilfried Stelberg

------------------
Warum lisp'eln wenn's auch anders geht.
www.ib-stelberg.de

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP



Leiter IT (m/w/d)

myonic ist ein mittelständisches Industrieunternehmen mit den Kernkompetenzen Entwicklung, Herstellung und
Vermarktung hochpräziser Miniaturkugellager, Rollenlager sowie Systemlösungen für Spitzentechnologien wie z.B. der Medizintechnik oder Werkzeugmaschinenindustrie.

Für unseren Bereich Information Technology (IT) suchen wir ab sofort einen

Leiter IT (m/w/d)

...
Anzeige ansehenTeamleitung, Gruppenleitung
LarsB
Mitglied



Sehen Sie sich das Profil von LarsB an!   Senden Sie eine Private Message an LarsB  Schreiben Sie einen Gästebucheintrag für LarsB

Beiträge: 446
Registriert: 13.05.2003

erstellt am: 20. Dez. 2013 08:41    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Ja, danke für die Axt. 

So geht es:

ROUND((FLAECHE*(case when (B - A) < 1 then 1 else (B - A) end))) as Aufwertung,

Vielen Dank und schöne Feiertage 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz