2017-09-08 1 views
1

Ich habe damit so lange gekämpft. Hoffe jemand kann mir helfen. Ich möchte 2 Spalten basierend auf Bedingungen von 3 Spalten hinzufügen.Erstellen Sie 2 Spalten basierend auf mehreren Bedingungen

Quote/Offer|RequiredLoanAmount |QuotationAmount|**Quote Amount**| **Offer Amount** 
Quote  |  490000  |  0  | 0   | 0 
Pending |  640000  |  640000 | 640000   | 0 
Pending |  1180000  |  1062000 | 0   | 1062000 
Offer  |  2562000  |  2305800 | 0   | 2305800 
Quote  |  400000  |  392000 | 392000   | 0 
Quote  |  770000  |  770000 | 770000   | 0 
Pending |  425000  |  680000 | 680000   | 0 
Pending |  1580000  |  1500000 | 0   | 1500000 
Pending |  260000  |  239985 | 0   | 239985 
Pending |  285000  |  285000 | 285000   | 0 
Pending |  600000  |  600000 | 600000   | 0 
Pending |  700000  |  700000 | 700000   | 0 
Pending |  1350000  |  1350000 | 1350000  | 0 
Offer  |  689000  |  650000 | 0   | 650000 
Pending |  1980000  |  1980000 | 1980000  | 0 
Pending |  960000  |  960000 | 960000   | 0 
Offer  |  670000  |  636500 | 0   | 636500 

Wenn Zitat/Angebot = Pending oder Quote und Menge empfangen - benötigte Menge> = 0, dann sollte es den Betrag in der Quote Spalte Betrag empfangen setzen

Wenn Zitat/Angebot = Pending oder Angebot und Menge empfangene - benötigte Menge < 0, dann sollte er den Betrag in der Angebots Spalte Betrag

die Formel in meiner Excel-Tabelle empfangen setzen sich wie folgt:

Angebots Menge:

=IF(AND(S22="Pending",(Q22-P22)>=0)=TRUE,Q22,IF(S22="Quote",Q22,0)) 

Für Angebot Betrag

=IF(AND(S22="Pending",(Q22-P22)<0)=TRUE,Q22,IF(S22="Offer",Q22,0)) 

Dies ist, was ich in SQL versucht haben:

SELECT * 
, CASE 
    WHEN [Quote/Offer] = 'Quote' AND QuotationAmount - RequiredLoanAmount >= 0 THEN QuotationAmount 
    WHEN [Quote/Offer] = 'Pending' AND QuotationAmount - RequiredLoanAmount < 0 THEN QuotationAmount 
    ELSE 0 
END AS QuoteAmount, 

CASE 
    WHEN [Quote/Offer] = 'Offer' AND QuotationAmount - RequiredLoanAmount > 0 THEN QuotationAmount 
    WHEN [Quote/Offer] = 'Pending' AND QuotationAmount - RequiredLoanAmount < 0 THEN QuotationAmount 
    ELSE 0 
END AS OfferAmount 

FROM #SubDatePartition 

ich ein paar andere Art und Weise versucht haben, aber das ist in der Nähe, die ich Holen Sie sich das gewünschte Ergebnis.

Ich würde wirklich die Hilfe zu schätzen wissen. Hoffe das ist genug Information.

+0

was ist Ihre erwartete Ausgabe? –

+0

Meine erwartete Ausgabe sind die letzten zwei Spalten in der obigen Tabelle. Angebotsbetrag und Angebotsbetrag –

+0

Warum verwenden Sie dann alle? In dieser Abfrage sind die Zeilen aller Spalten größer als die Ihrer QuoteAmount-Spalte, die im Fall –

Antwort

0
=IF(AND(S22="Pending",(Q22-P22)>=0)=TRUE,Q22,IF(S22="Quote",Q22,0)) 

wird

CASE 
WHEN [Quote/Offer] = 'Pending' AND QuotationAmount - RequiredLoanAmount >= 0 THEN QuotationAmount 
WHEN [Quote/Offer] = 'Quote' THEN QuotationAmount 
ELSE 0 
END AS QuoteAmount 
+0

Awesome vielen Dank –

0

Das Problem gleich war, dass Sie die Bedingungen mit den entsprechenden AND/OR Betreiber die mehrere Bedingungen jeweils in getrennten WHEN ‚s statt Verkettungs anzog (beachten Sie, dass [Quote/Offer] IN ('Pending','Quote') ist äquivalent zu ([Quote/Offer]='Pending' OR [Quote/Offer]='Quote')):

SELECT [Quote/Offer], RequiredLoanAmount, QuotationAmount, 
    CASE WHEN [Quote/Offer] IN ('Pending','Quote') AND QuotationAmount-RequiredLoanAmount>=0 
     THEN QuotationAmount ELSE 0 
    END AS QuoteAmount, 
    CASE WHEN [Quote/Offer] IN ('Pending','Offer') AND QuotationAmount-RequiredLoanAmount<0 
     THEN QuotationAmount ELSE 0 
    END AS OfferAmount 
FROM #SubDatePartition 
+0

Vielen Dank –

Verwandte Themen