SQL ... превращение имеющего с футляром в где с футляром - PullRequest
0 голосов
/ 26 мая 2020

Это мой код. Моя проблема связана с тем, что у меня есть. Мне пришлось внести некоторые изменения для обработки кода sas в тераданных, и поэтому мне нужно было исключить GROUP BY, и я должен использовать предложение WHERE, а не HAVING, сохраняя те же условия. К сожалению, я застрял, и поэтому прошу ваших предложений.

SELECT t1.COD_PRODT, 
      t1.COD_RESID_, 
      t1.COD_DIVISA, 
      t1.COD_ABI, 
      t1.COD_NDG, 
      t1.COD_KTO, 
      t1.COD_PAESE, 
      t1.DAT_SCA, 
      t1.DAT_ACC, 
      t1.DAT_EST, 

      (COUNT(t1.COD_ABI)) AS COUNT_of_COD_ABI
  FROM WORK.A_VE_ES_DB_ANAGR_CONTO_CT_TT t1
  GROUP BY t1.COD_ABI,
           t1.COD_KTO
  HAVING  (
         CASE WHEN  COUNT_of_COD_ABI > 1 AND t1.DAT_EST IS NOT NULL THEN 1
                   WHEN COUNT_of_COD_ABI > 1 AND t1.DAT_EST IS NULL THEN 0
                   WHEN COUNT_of_COD_ABI = 1 THEN 1
                   ELSE 0 END
         ) = 1
  ORDER BY COUNT_of_COD_ABI DESC,
           t1.COD_ABI,
           t1.COD_KTO,
           t1.COD_NDG

Я сделал что-то в этом роде, но оказалось, что это устраняет дубликаты, а мне нужно их также внести в анализ. ..

where (COUNT_of_COD_ABI = 
    CASE 
        WHEN COUNT_of_COD_ABI> 1 AND P2.DAT_EST IS NOT NULL THEN 1
        WHEN COUNT_of_COD_ABI> 1 AND P2.DAT_EST IS NULL THEN 0
        WHEN COUNT_of_COD_ABI = 1 THEN 1
        ELSE 0
    end ) 

Вы можете мне с этим помочь?

...