i want to avoid union in this query also if any other suggestions please recommend?

Database
The Teradata Database channel includes discussions around advanced Teradata features such as high-performance parallel database technology, the optimizer, mixed workload management solutions, and other related technologies.
Teradata Employee

i want to avoid union in this query also if any other suggestions please recommend?

sel normalize

asiakas_avain as asiakas_avain,

/* alkurivit 1800-kunnes jotain on tapahtunut, niihin ei muokata talouden tunnus arvoa koska on kaikille -1, muuten -1 arvot muokatataan koska halutaan erottaa yksin asuvat omiksi talouksikseen*/

-1*asiakas_avain  as talouden_tunnus,

voimassaolon_VT as voimassaolon_VT

FROM

KDW1PRDP1.D_ASIAKAS_PERUS_H WHERE Asiakastyyppi = 1 and kuolinpaiva='31.12.9999' and talouden_tunnus=-1

UNION

sel normalize

asiakas_avain as asiakas_avain,

/* alkurivit 1800-kunnes jotain on tapahtunut, niihin ei muokata talouden tunnus arvoa koska on kaikille -1, muuten -1 arvot muokatataan koska halutaan erottaa yksin asuvat omiksi talouksikseen*/

talouden_tunnus  as talouden_tunnus,

voimassaolon_VT as voimassaolon_VT

FROM

KDW1PRDP1.D_ASIAKAS_PERUS_H WHERE Asiakastyyppi = 1 and kuolinpaiva='31.12.9999' and talouden_tunnus<>-1

Tags (3)
1 REPLY
Junior Contributor

Re: i want to avoid union in this query also if any other suggestions please recommend?

Same table twice, ony a different Where-condition, you should be able to move it to a CASE:

sel normalize
asiakas_avain as asiakas_avain,
/* alkurivit 1800-kunnes jotain on tapahtunut, niihin ei muokata talouden tunnus arvoa koska on kaikille -1, muuten -1 arvot muokatataan koska halutaan erottaa yksin asuvat omiksi talouksikseen*/

CASE WHEN  and talouden_tunnus=-1 THEN -asiakas_avain ELSE  talouden_tunnus  END as talouden_tunnus,

voimassaolon_VT as voimassaolon_VT
FROM KDW1PRDP1.D_ASIAKAS_PERUS_H
WHERE Asiakastyyppi = 1 and kuolinpaiva='31.12.9999'
and talouden_tunnus IS NOT NULL