2017-01-30 16 views
-2

ich eine Bedingung haben (in Business-Objekte), wie untenCASE mit IN-Klausel

=If([Actual ]=0;Sum([Applied] In ([Project];[ Name];[Number];[Sub ]))) 

, die ich brauche es Aussage für meine OBIEE

Below CASE zu konvertieren ist die Abfrage, die ich versucht hatte, aber es funktioniert nicht:

SELECT 
    CASE 
    WHEN F.ACTUAL_EQP_COST = 0 
     THEN SUM((F.HRS_APPLIED) IN(F.PROJECT,F.NAME,F.NUMBER,F.SUB)) 
    ELSE 0 
    END 
FROM F 
+0

Versuchen Sie, Ihre Frage mit Beispieldaten und gewünschten Ergebnissen zu bearbeiten. Die Abfrage ergibt keinen Sinn. –

+1

Was bedeutet "Sum ([Applied] In ([Projekt]; [Name]; [Nummer]; [Sub])" –

+0

Ich glaube, die innerhalb von IN() sind Spaltennamen .... scheint wie sie sind flags oder so ähnlich – Veljko89

Antwort

1

Wahrscheinlich

select SUM(F.HRS_APPLIED) 
from DTS_OSC_WIP_REP_CST_ANALYSIS_A F 
where F.ACTUAL_EQP_COST = 0 
group by F.PROJECT,F.WIP_ENTITY_NAME,F.OPERATION_NUMBER,F.OPERATION_SUB_SEQ 
0

Sie können "in" nicht innerhalb einer "then" -Anweisung verwenden. Ich konnte nicht genau verstehen, aber etwas in dieser Richtung könnte helfen:

select 
CASE WHEN F.ACTUAL_EQP_COST = 0 
THEN (SELECT SUM(F1.HRS_APPLIED) 
FROM DTS_OSC_WIP_REP_CST_ANALYSIS_A F1 
WHERE F1.column_name IN (F.PROJECT,F.WIP_ENTITY_NAME,F.OPERATION_NUMBER,F.OPERATION_SUB_SEQ)) 
ELSE 0 END 
from DTS_OSC_WIP_REP_CST_ANALYSIS_A F