When I perform a UNION between 2 tables, the strings are automatically shortened. I get "30 Days Active Su" and "120 Days Active S". When I run the query individually, without any UNION, I get the full form "30 Days Active Subs" and "120 Days Active Subs", which I require. Why is this so and how to go about correcting it?
Following is the code:
SELECT
'30 Days Active Subs' AS PROPERTY
,(DISTINCT SUBS.SUBSCRIBER_COUNT) AS SUBS_COUNT
FROM PMP_AVEW.FCT_SUBS_DLY_SNAP AS SUBS
WHERE SUBS.DAYS=30
GROUP BY 1
UNION
SELECT
'120 Days Active Subs' AS PROPERTY
,(DISTINCT SUBS.SUBSCRIBER_COUNT) AS SUBS_COUNT
FROM PMP_AVEW.FCT_SUBS_DLY_SNAP AS SUBS
WHERE SUBS.DAYS=120
you need to cast this column.
SELECT
CAST('30 Days Active Subs' AS varchar(255)) AS PROPERTY
,(DISTINCT SUBS.SUBSCRIBER_COUNT) AS "30_DAYS_SUBS"
FROM PMP_AVEW.FCT_SUBS_DLY_SNAP AS SUBS
WHERE SUBS.DAYS=30
GROUP BY 1
UNION
SELECT
'120 Days Active Subs' AS PROPERTY
,(DISTINCT SUBS.SUBSCRIBER_COUNT) AS "120_DAYS_SUBS"
FROM PMP_AVEW.FCT_SUBS_DLY_SNAP AS SUBS
WHERE SUBS.DAYS=120
or you can use fixed length
CAST('30 Days Active Subs' AS CHARACTER(20))