Как написать оператор Teradata SQL с EITHER OR между двумя столбцами с несколькими операторами WHERE? - PullRequest
0 голосов
/ 03 марта 2020

Я пытаюсь использовать два столбца. DATA_IND дает значения «да» или «нет», а другой столбец VIDEO_IND дает «да» или «нет».

Я хочу, чтобы мой запрос возвращался, если в любом из столбцов есть "да".

Return CASE (да, да) (да, нет) (нет, да) НЕ возвращать, если (нет, нет)

SELECT 
    t.email,
    a.acct_sk,
    a.snapshot_dt,
    a.ACCT_SK,
    a.ACCT_ESTBD_DT,
    a.ACCT_TERM_DT, 
    a.CUST_EMAIL_ADDR,
    a.VOICE_IND, 
    a.DSL_IND, 
    a.FIOS_IND,
    a.DATA_IND,
    a.VIDEO_IND,
    e.acct_sk,
    e.BILL_DT,
    e.CURR_BILL_AMT

FROM Table 1 t

LEFT JOIN Table 2 a 
   ON t.email = a.CUST_EMAIL_ADDR 

LEFT JOIN Table 3 e
   ON a.acct_sk = e.acct_sk

WHERE t.email not in ('askforemail@dsjkahk.vv') 
   AND a.ACCT_TYPE_CD ='B'
   AND a.ACCT_ESTBD_DT between date '2019-09-01' and date '2019-09-30'
   AND a.snapshot_dt = DATE '2020-01-01'
   AND e.BILL_DT between date '2020-01-01' and date '2020-01-31';

Любой из этих двух столбцов может быть "да" ", оба не могут быть" Нет "a.DATA_IND, a.VIDEO_IND,

1 Ответ

1 голос
/ 03 марта 2020

Как насчет добавления этого к предложению where:

and not (date_ind = 'no' and video_ind = 'no')

Или, если предположить, что значения являются двоичными:

 and (data_ind = 'yes' or video_ind = 'yes')
...