[NEWSboard IBMi Forum]

Thema: SUM(Case)

Hybrid View

  1. #1
    Registriert seit
    Apr 2012
    Beiträge
    360

    SUM(Case)

    Hallo,
    habe da ein Problem mit einem Sum(Case ..).

    Ich möchte, wenn in VZT2 <> 0 as drin steht diesen Wert ansonsten den Wert VZT1 summieren.

    SELECT
    SUM(Case When VZT2 <> 0 then VZT2 ELSE VZT1 END)
    FROM MyFile

    Mit diesem Sql bekomme ich das Ergebnis 2190 anstatt von 955.

    Was mache ich da falsch?

    Code:
    VZT1  VZT2           Ergebnis(gewünschtes)   
    440      0              440       
    205      0              205       
     60      0               60       
     40     18               18       
    270    117              117       
     25      0               25       
     90      0               90       
                           =====      
                            955
    Gruß und Dank
    Tarki

  2. #2
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Was liefert dieser SELECT mit CASE aber ohne SUM() an Werten?

  3. #3
    Registriert seit
    Apr 2012
    Beiträge
    360
    Hi,
    folgende Werte erhalte ich mit CASE:
    Code:
    Ausdruck CASE 
           440    
           440    
           440    
           205    
           205    
            60    
            60    
            18    
           117    
            25    
            90    
            90

  4. #4
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Na das ergibt doch genau die 2190.

    Zitat Zitat von tarkusch Beitrag anzeigen
    Hi,
    folgende Werte erhalte ich mit CASE:
    Code:
    Ausdruck CASE 
           440    
           440    
           440    
           205    
           205    
            60    
            60    
            18    
           117    
            25    
            90    
            90

  5. #5
    Registriert seit
    Apr 2012
    Beiträge
    360
    Ja schon, aber ich hätte gerne das Ergebniss: 955 gehabt

    Im Case frage ich ja ab, ob VZT2 größer als 0 ist.

  6. #6
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Deine Werte ergeben nunmal in Summe 2190 und nicht 955.

    Dein SELECT mit CASE liefert den Wert 440 insgesamt 3 Mal, das ergibt ja schon 1320.

  7. #7
    Registriert seit
    Apr 2012
    Beiträge
    360
    Funktioniert das Select mit CASE nicht Zeilenweise?

  8. #8
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Mach mal "SELECT VZT1, VZT2 FROM MyFile" und rechne nochmal nach. Deine 955 können nicht ganz stimmen.

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Vielleicht willst du ja nur eindeutige Werte ?
    440 3x, 90 2x

    sum(distinct case ...)
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  10. #10
    Registriert seit
    Dec 2011
    Beiträge
    11
    sieht mir eher danach aus, als hättest du noch einen JOIN in deinem Query, der bei der Verknüpfung von 2 Tabellen einige Zeilen dupliziert. In diesem Fall solltest du dir die Verknüpfungsbedingung nochmal anschauen ...

Similar Threads

  1. SQL-Anforderung
    By fpxx in forum NEWSboard Programmierung
    Antworten: 15
    Letzter Beitrag: 18-10-12, 16:58
  2. SQL: SpaltenÜberschrift als Variable
    By WoD in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 23-06-09, 06:17
  3. SUM mit Bedingung
    By linguin in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 24-04-07, 11:22
  4. SQL Select mit SUM aus einer DB
    By JonnyRico in forum NEWSboard Programmierung
    Antworten: 14
    Letzter Beitrag: 30-03-06, 12:33

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •