I may have asked this question incorrectly but I have the following query where I'm trying to pull 3 different metrics for a given store. When I pull them though it comes out as below:
Is there a way I could get all of these so that the Generated, Post, and Daily Percentages are all on one line? I would want it to look something like this
This is the query I used for it:
SELECT
STORE_NUM,
--REPORT_TYPE,
REPORT_STARTDATE,
--GEN_IMPORT_DT,
--POST_IMPORT_DT,
--SID,
--REQ,
CASE WHEN REPORT_TYPE = 'G' THEN SE_PCNT ELSE 0 END AS SE_PCNT_Generated,
CASE WHEN REPORT_TYPE = 'A' THEN SE_PCNT ELSE 0 END AS SE_PCNT_At_Post,
CASE WHEN REPORT_TYPE = 'D' THEN SE_PCNT ELSE 0 END AS SE_PCNT_Daily
FROM (
SELECT STORE_NUM,
REPORT_TYPE,
REPORT_STARTDATE,
DATE_IMPORT_2 AS GEN_IMPORT_DT,
DATE_IMPORT_3 AS POST_IMPORT_DT,
SUM (COVERAGE_EFFECTIVE_SCHED_DEMAND) AS SID,
SUM (COVERAGE_EFFECTIVE_REQUIRED) AS REQ,
CASE WHEN SUM (COVERAGE_EFFECTIVE_SCHED_DEMAND)>0 THEN
SUM (COVERAGE_EFFECTIVE_SCHED_DEMAND) / SUM(COVERAGE_EFFECTIVE_REQUIRED) ELSE 0 END AS SE_PCNT
FROM DNA_DM..STOREOPS_SCHEDULE_EFFECTIVENESS_RPT
WHERE
--REPORT_TYPE = 'A' AND REC_TYPE = 'S'
REPORT_STARTDATE >='03/08/21'
AND STORE_NUM = 2
GROUP BY 1, 2, 3, 4, 5
) AS q
SELECT
STORE_NUM,
max(REPORT_STARTDATE),
max(CASE WHEN REPORT_TYPE = 'G' THEN SE_PCNT ELSE 0 END )AS SE_PCNT_Generated,
max(CASE WHEN REPORT_TYPE = 'A' THEN SE_PCNT ELSE 0 END )AS SE_PCNT_At_Post,
max(CASE WHEN REPORT_TYPE = 'D' THEN SE_PCNT ELSE 0 END )AS SE_PCNT_Daily
FROM (
SELECT STORE_NUM,
REPORT_TYPE,
REPORT_STARTDATE,
DATE_IMPORT_2 AS GEN_IMPORT_DT,
DATE_IMPORT_3 AS POST_IMPORT_DT,
SUM (COVERAGE_EFFECTIVE_SCHED_DEMAND) AS SID,
SUM (COVERAGE_EFFECTIVE_REQUIRED) AS REQ,
CASE WHEN SUM (COVERAGE_EFFECTIVE_SCHED_DEMAND)>0 THEN
SUM (COVERAGE_EFFECTIVE_SCHED_DEMAND) / SUM(COVERAGE_EFFECTIVE_REQUIRED) ELSE 0 END AS SE_PCNT
FROM DNA_DM..STOREOPS_SCHEDULE_EFFECTIVENESS_RPT
WHERE
--REPORT_TYPE = 'A' AND REC_TYPE = 'S'
REPORT_STARTDATE >='03/08/21'
AND STORE_NUM = 2
GROUP BY 1, 2, 3, 4, 5
) AS q
group by store_num
If you want the value of SE_PCNT_Generated, SE_PCNT_At_Post and SE_PCNT_Daily store wise and report date wise then use :
SELECT
STORE_NUM,
REPORT_STARTDATE,
max(CASE WHEN REPORT_TYPE = 'G' THEN SE_PCNT ELSE 0 END )AS SE_PCNT_Generated,
max(CASE WHEN REPORT_TYPE = 'A' THEN SE_PCNT ELSE 0 END )AS SE_PCNT_At_Post,
max(CASE WHEN REPORT_TYPE = 'D' THEN SE_PCNT ELSE 0 END )AS SE_PCNT_Daily
FROM (
SELECT STORE_NUM,
REPORT_TYPE,
REPORT_STARTDATE,
DATE_IMPORT_2 AS GEN_IMPORT_DT,
DATE_IMPORT_3 AS POST_IMPORT_DT,
SUM (COVERAGE_EFFECTIVE_SCHED_DEMAND) AS SID,
SUM (COVERAGE_EFFECTIVE_REQUIRED) AS REQ,
CASE WHEN SUM (COVERAGE_EFFECTIVE_SCHED_DEMAND)>0 THEN
SUM (COVERAGE_EFFECTIVE_SCHED_DEMAND) / SUM(COVERAGE_EFFECTIVE_REQUIRED) ELSE 0 END AS SE_PCNT
FROM DNA_DM..STOREOPS_SCHEDULE_EFFECTIVENESS_RPT
WHERE
--REPORT_TYPE = 'A' AND REC_TYPE = 'S'
REPORT_STARTDATE >='03/08/21'
AND STORE_NUM = 2
GROUP BY 1, 2, 3, 4, 5
) AS q
group by store_num,REPORT_STARTDATE