Я пытаюсь извлечь данные из таблицы, которая содержит процентное значение на основе двух разных значений - nbr записей, затронутых/всего nbr записей. Мне нужна скользящая ежемесячная сумма. У меня есть запрос, который кажется на правильном пути, но есть очевидный недостаток, поэтому я надеюсь получить некоторую помощь.выражения в запросе с использованием команды PIVOT
Вот запрос:
SELECT
Area_NM,
[1] AS Jan,
[2] AS Feb,
[3] AS Mar,
[4] AS Apr,
[5] AS May,
[6] AS Jun,
[7] AS Jul,
[8] AS Aug,
[9] AS Sep,
[10] AS Oct,
[11] AS Nov,
[12] AS Dec
FROM
(select Area_NM, month(Closed_DT) as TMonth, (100. *
(
select COUNT(*) from T_AREA AS DISP
WHERE P.Area_NM = DISP.Area_NM AND DISP.Branch_MKT = 'NORTHEAST' AND DISP.About <> 'Branch' AND DISP.CAP_TXT IS NOT NULL
)
/
(
select sum(count(*)) over() from T_AREA AS TOT
WHERE P.Area_NM = TOT.Area_NM AND TOT.Branch_MKT = 'NORTHEAST' AND TOT.About <> 'Branch'
)) as perc
from T_AREA AS P
WHERE P.Branch_MKT = 'NORTHEAST' AND P.About <> 'Branch'
) source
PIVOT
(
SUM(perc) **OBVIOUS ERROR
FOR TMonth
IN ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12])
) AS pvtMonth
Результаты должны выглядеть следующим образом:
Area Name | Jan | Feb | Mar | Apr | ...... ____________________________________________ Arlington 44% 0% 0% 0%......
(где Арлингтон был 9 из TOT и 4 из ИЗОБ в JAN, 0 в DISP для остаток месяцев)
Фактические результаты - это цифры, а не точные проценты.
Ошибка, указанная в команде PIVOT
. Поскольку я уже запускал выражение, мне технически не нужен SUM
, мне просто нужно значение выражения. Верный?
EDIT: Добавление некоторых образцов данных:
CREATE TABLE [T_AREA](
[Case_NBR] [varchar](18) NULL,
[About] [varchar](15) NULL,
[CAP_TXT] [varchar](50) NULL,
[Complaint_TYP] [varchar](11) NULL,
[Branch_MKT] [varchar](9) NULL,
[Branch_DIV] [varchar](30) NULL,
[Area_NM] [varchar](30) NULL,
[Branch_NM] [varchar](30) NULL,
[Closed_DT] [datetime] NULL
) ON [PRIMARY]
GO
INSERT INTO [T_AREA]
[Case_NBR],[About],[CAP_TXT],[UPDT_DT],[Complaint_TYP],[Branch_MKT],[Branch_DIV], [Area_NM],[Branch_NM],[Closed_DT])
VALUES
('05/21/2014-1577309','Branch Teammate',NULL,'Operational','NORTHEAST','Gr Washington and Maryland','DC N Arlington GWM Area','1275 K STREET','5/23/2014 11:44:34 AM'),
('05/21/2014-1577382','Branch Teammate','No Action','Service','NORTHEAST','North and South Carolina','Hickory Salisbury NCSC Area','STATESVILLE BOULEVARD','5/27/14 3:05 PM'),
('05/21/2014-1577949','Branch Teammate',NULL,'Operational','NORTHEAST','Total Virginia','Richmond E Henrico VA Area','TENTH AND MAIN','5/21/14 6:41 PM'),
('05/22/2014-1578740','Branch Teammate','No Action','Service','NORTHEAST','Gr Washington and Maryland','Baltimore Harford GWM Area','WATERVIEW TOWN CENTER','5/22/14 8:58 AM'),
('05/22/2014-1579248','Branch Teammate','No Action','Operational','NORTHEAST','North and South Carolina','Winston Salem NCSC Area','MEDICAL PARK','4/27/14 9:03 AM'),
('05/22/2014-1579250','Branch Teammate','No Action','Service','NORTHEAST','Total Tennessee','Nashville Rutherford TN Area','MURFREESBORO ROAD','4/22/14 5:04 PM'),
('05/22/2014-1579578','Branch Teammate','No Action','Operational','NORTHEAST','Gr Washington and Maryland','Alexandria S Arling GWM Area','LANDMARK','5/22/14 6:11 PM'),
('05/22/2014-1579605','Branch Teammate',NULL,'Operational','NORTHEAST','Gr Washington and Maryland','Baltimore Harford GWM Area','NORTH CHARLES','5/27/14 10:36 AM'),
('05/22/2014-1579609','Branch Teammate',NULL,'Operational','NORTHEAST','Gr Washington and Maryland','North PG GWM Area','BLADENSBURG','6/3/14 9:25 PM'),
('05/23/2014-1580473','Branch Teammate','No Action','Operational','NORTHEAST','Gr Washington and Maryland','Fairfax Prince Wm GWM Area','MONTCLAIR','6/29/14 5:12 PM'),
('05/23/2014-1580518','Branch Teammate',NULL,'Service','NORTHEAST','Gr Washington and Maryland','S Montgomery GWM Area','OLNEY','6/23/14 10:42 AM'),
('05/23/2014-1580667','Branch Teammate','No Action','Operational','NORTHEAST','North and South Carolina','Greater S Charlotte NCSC Area','HILLTOP-MONROE','5/29/14 10:09 AM'),
('05/23/2014-1580687','Branch Teammate',NULL,'Operational','NORTHEAST','Gr Washington and Maryland','North PG GWM Area','ARDWICK-ARDMORE','3/23/14 12:18 PM'),
('05/23/2014-1580784','Branch Teammate',NULL,'Operational','NORTHEAST','North and South Carolina','Hickory Salisbury NCSC Area','STATESVILLE BOULEVARD','6/28/14 3:28 PM'),
('05/23/2014-1581167','Branch Teammate','No Action','Operational','NORTHEAST','Total Tennessee','Memphis TN Area','POPLAR & HIGHLAND','5/29/14 10:38 AM');
вы помечено это как с MySQL и SQL Server, какую базу данных вы используете? У MySQL нет PIVOT, так что это будет проблемой. Если вы запустите подзапрос (исключая опорные элементы) - это работает? – Taryn
Это SQL Server 2008. Да, этот подзапрос работает, исключая опорную точку. – user2432887
Какова ошибка, которую вы получаете с запросом? – Taryn