Как перевести мой оператор Excel If в запрос SQL - PullRequest
0 голосов
/ 26 февраля 2019

У меня небольшая проблема с переводом моего предложения Excel if в предложение CASE.Ниже я опубликовал свой текущий оператор SQL и оператор IF, в который я пытаюсь вписаться. В идеале я бы хотел, чтобы он содержался в предложении Where, но если мне понадобится еще один столбец, я его возьму.Выделенный жирным шрифтом выделен другой заголовок.

Из-за того, как настроено мое условие where, это означает, что я получаю только половину результатов

IF Statement is =IF(PD="AC","S",IF(PD="CS","S",IF(PD="CA","S",<strong>IF(**PT</strong>=<strong>"SS","S"," "</strong>)**)))

CurrentSQL

SELECT 

AEOrdersReceivedCurrentQuarter.`Order Company`
, AEOrdersReceivedCurrentQuarter.`Sop Order Number`
, AEOrdersReceivedCurrentQuarter.`Order Date`
, AEOrdersReceivedCurrentQuarter.`Order Method`
, AEOrdersReceivedCurrentQuarter.`Payment Method`
, AEOrdersReceivedCurrentQuarter.`Product Type`
, AEOrdersReceivedCurrentQuarter.`Product Sub Type`
, AEOrdersReceivedCurrentQuarter.`Product Description`
, AEOrdersReceivedCurrentQuarter.`Quantity Ordered`
, AEOrdersReceivedCurrentQuarter.`Product Item Value`
, AEOrdersReceivedCurrentQuarter.`Order Count`
, AEOrdersReceivedCurrentQuarter.`Order Item Narrative`
, AEOrdersReceivedCurrentQuarter.`Product Group`
, AEOrdersReceivedCurrentQuarter.`Product Category`

FROM AEOrdersReceivedCurrentQuarter.csv AEOrdersReceivedCurrentQuarter

WHERE 
CASE WHEN AEOrdersReceivedCurrentQuarter.`Product Type` = 'Studio Services' THEN 'Studio Services'
CASE WHEN AEOrdersReceivedCurrentQuarter.`Product Description` IN ('Artwork Charge','Creative Services','Creative Agency','Studio Services') THEN 'Studio Services'
ELSE ' '
End

1 Ответ

0 голосов
/ 26 февраля 2019

Не очень понятно, о чем вы спрашиваете.Вы хотите как-то ограничить записи с помощью оператора IF?

case, вероятно, будет выглядеть так:

where case 
        when PT='SS' then 'S'
        when PD in ('AC', 'CS', 'CA') then 'S'
        else ' '
      end  = 'S'
...