У нас есть два типа записей: внешние (acc) и внутренние (именуемые просто записями).
В настоящее время мой запрос возвращает (acc) ежемесячные итоги и (acc) итоги с даты внедрения системы (начало).
Теперь нам нужно добавить итоги за (в соотв.) Текущую дату начала года (разделенные косой чертой '/'), Итого за (в соотв.) В прошлом году.
То же самое для внутренних записей, которые в запросе являются столбцами [Last Month] и [Inception Count of Records].
Добавление итогов за (внутренний) Текущий YTD (разделенный косой чертой '/'), Итого за (внутренний) в прошлом году.
Я думаю, что мне нужно добавить еще несколько подвыборов, чтобы получить нужные мне числа, но у меня возникли проблемы с пониманием того, как эта часть структурирована, а затем использовать те столбцы, которые уже есть.
Я включаю мой текущий запрос, который извлекает только текущую месячную сумму и итоги с даты создания обоих типов записей (внешней и внутренней).
Я надеюсь, что все это имеет смысл, потому что я хотел бы попросить некоторую помощь, чтобы я мог выполнить этот запрос. Любой пример или модификация моего запроса, или какое-либо руководство было бы удивительным.
Запрос - Пересмотрены предложение WHERE и условие AND, поскольку с использованием уже отфильтрованных (до определенной степени) данных выборки -.
SELECT
[RecordTypes].[Agency] [Agency]
, [RecordTypes].[Record Type] [Record Type]
, ISNULL([MonthlyRecords].[ACA], 0) [ACA]
, ISNULL([RecordTypes].[Inception Count ACA], 0) [Inception Count ACA]
, ISNULL([MonthlyRecords].[Count of Records], 0) [Last Month]
, [RecordTypes].[Inception Count of Records] [Inception Count of Records]
, ISNULL([RecordTypes].[Date of Last Record], '') [Date of Last record]
, ISNULL([RecordTypes].[Record Type Last Modified], '') [Date Record Type Last Modified]
, IIF([RecordTypes].[ACA Enabled] IN ('VHAPP', 'VHSP', 'VHAI'), 'True', 'False') [ACA Enabled]
FROM
(SELECT
CASE
WHEN [R3].[R1_APP_TYPE_ALIAS] IN('Permitted Use Site Plan Review', 'Minor Alteration to Approved Conditional Use', 'Minor Alteration to Approved Planned Unit Development') THEN 'Zoning'
WHEN [R3].[R1_APP_TYPE_ALIAS] IN ('Code Enforcement Mileage', 'Renewal Registration', 'Rental Property Emergency Contact', 'W&M License') THEN 'Building Inspection'
WHEN [R3].[R1_PER_TYPE] IN ('Annexation', 'Condominium', 'Land Management', 'Land Use', 'Landmark', 'Subdivision') THEN 'Planning'
WHEN [R3].[R1_PER_GROUP]+'/'+[R3].[R1_PER_TYPE] = 'AMS/Equipment'
OR [R3].[R1_PER_GROUP]+'/'+[R3].[R1_PER_TYPE] = 'AMS/Vehicle'
OR [R3].[R1_PER_GROUP]+'/'+[R3].[R1_PER_TYPE] = 'AMS/Facility'
OR [R3].[R1_APP_TYPE_ALIAS] = 'As-Built Request'
OR LEFT([R3].[R1_PER_TYPE], 11) = 'Engineering' THEN 'Engineering'
WHEN [R3].[R1_APP_TYPE_ALIAS] = 'Edible Landscape Permit' THEN 'Mayor'
WHEN [R3].[R1_PER_GROUP] = 'LICENSES'
AND [R3].[R1_PER_TYPE] = 'Building Inspection' THEN 'Building'
WHEN [R3].[R1_PER_TYPE] = 'Traffic' THEN 'Traffic Engineering'
WHEN LEFT([R3].[R1_PER_TYPE], '7') = 'Streets' THEN 'Streets'
WHEN [R3].[R1_PER_GROUP] = 'AnimalServices' THEN 'Health'
ELSE [R3].[R1_PER_TYPE]
END [Agency]
, CASE
WHEN [B1].[B1_PER_SUB_TYPE] NOT IN ('Landlord Registration', 'Foreclosure Registration')
AND [R3].[R1_PER_TYPE] = 'Building Inspection'
AND [R3].[R1_PER_GROUP] = 'Licenses' THEN 'License '+[R3].[R1_APP_TYPE_ALIAS]
ELSE REPLACE([R3].[R1_APP_TYPE_ALIAS], '/NA', '')
END [Record Type]
, COUNT([B1].[B1_ALT_ID]) [Inception Count of Records]
, COUNT([B1].[B1_ACCESS_BY_ACA]) [Inception Count ACA]
, MAX([B1].[B1_FILE_DD]) [Date of Last Record]
, MAX([R3].[REC_DATE]) [Record Type Last Modified]
, MAX([R3].[R1_UDCODE3]) [ACA Enabled]
FROM
[R3APPTYP] [R3]
LEFT OUTER JOIN [B1PERMIT] [B1]
ON [R3].[SERV_PROV_CODE] = [B1].[SERV_PROV_CODE]
AND [R3].[R1_PER_GROUP] = [B1].[B1_PER_GROUP]
AND [R3].[R1_PER_TYPE] = [B1].[B1_PER_TYPE]
AND [R3].[R1_PER_SUB_TYPE] = [B1].[B1_PER_SUB_TYPE]
AND [R3].[R1_PER_CATEGORY] = [B1].[B1_PER_CATEGORY]
WHERE
[R3].[SERV_PROV_CODE] = 'MISOULA'
AND [R3].[REC_STATUS] = 'A'
GROUP BY
CASE
WHEN [R3].[R1_APP_TYPE_ALIAS] IN('Permitted Use Site Plan Review', 'Minor Alteration to Approved Conditional Use', 'Minor Alteration to Approved Planned Unit Development') THEN 'Zoning'
WHEN [R3].[R1_APP_TYPE_ALIAS] IN('Code Enforcement Mileage', 'Renewal Registration', 'Rental Property Emergency Contact', 'W&M License') THEN 'Building Inspection'
WHEN [R3].[R1_PER_TYPE] IN('Annexation', 'Condominium', 'Land Management', 'Land Use', 'Landmark', 'Subdivision') THEN 'Planning'
WHEN [R3].[R1_PER_GROUP]+'/'+[R3].[R1_PER_TYPE] = 'AMS/Equipment'
OR [R3].[R1_PER_GROUP]+'/'+[R3].[R1_PER_TYPE] = 'AMS/Vehicle'
OR [R3].[R1_PER_GROUP]+'/'+[R3].[R1_PER_TYPE] = 'AMS/Facility'
OR [R3].[R1_APP_TYPE_ALIAS] = 'As-Built Request'
OR LEFT([R3].[R1_PER_TYPE], 11) = 'Engineering' THEN 'Engineering'
WHEN [R3].[R1_APP_TYPE_ALIAS] = 'Edible Landscape Permit' THEN 'Mayor'
WHEN [R3].[R1_PER_GROUP] = 'LICENSES'
AND [R3].[R1_PER_TYPE] = 'Building Inspection' THEN 'Building'
WHEN [R3].[R1_PER_TYPE] = 'Traffic' THEN 'Traffic Engineering'
WHEN LEFT([R3].[R1_PER_TYPE], '7') = 'Streets' THEN 'Streets'
WHEN [R3].[R1_PER_GROUP] = 'AnimalServices' THEN 'Health'
ELSE [R3].[R1_PER_TYPE]
END
, CASE
WHEN [B1].[B1_PER_SUB_TYPE] NOT IN('Landlord Registration', 'Foreclosure Registration')
AND [R3].[R1_PER_TYPE] = 'Building Inspection'
AND [R3].[R1_PER_GROUP] = 'Licenses' THEN 'License '+[R3].[R1_APP_TYPE_ALIAS]
ELSE REPLACE([R3].[R1_APP_TYPE_ALIAS], '/NA', '')
END)
[RecordTypes]
LEFT OUTER JOIN
(SELECT
CASE
WHEN [R3].[R1_APP_TYPE_ALIAS] IN('Permitted Use Site Plan Review', 'Minor Alteration to Approved Conditional Use', 'Minor Alteration to Approved Planned Unit Development') THEN 'Zoning'
WHEN [R3].[R1_APP_TYPE_ALIAS] IN('Code Enforcement Mileage', 'Renewal Registration', 'Rental Property Emergency Contact', 'W&M License') THEN 'Building Inspection'
WHEN [R3].[R1_PER_TYPE] IN('Annexation', 'Condominium', 'Land Management', 'Land Use', 'Landmark', 'Subdivision') THEN 'Planning'
WHEN [R3].[R1_PER_GROUP]+'/'+[R3].[R1_PER_TYPE] = 'AMS/Equipment'
OR [R3].[R1_PER_GROUP]+'/'+[R3].[R1_PER_TYPE] = 'AMS/Vehicle'
OR [R3].[R1_PER_GROUP]+'/'+[R3].[R1_PER_TYPE] = 'AMS/Facility'
OR [R3].[R1_APP_TYPE_ALIAS] = 'As-Built Request'
OR LEFT([R3].[R1_PER_TYPE], 11) = 'Engineering' THEN 'Engineering'
WHEN [R3].[R1_APP_TYPE_ALIAS] = 'Edible Landscape Permit' THEN 'Mayor'
WHEN [R3].[R1_PER_GROUP] = 'LICENSES'
AND [R3].[R1_PER_TYPE] = 'Building Inspection' THEN 'Building'
WHEN [R3].[R1_PER_TYPE] = 'Traffic' THEN 'Traffic Engineering'
WHEN LEFT([R3].[R1_PER_TYPE], '7') = 'Streets' THEN 'Streets'
WHEN [R3].[R1_PER_GROUP] = 'AnimalServices' THEN 'Health'
ELSE [R3].[R1_PER_TYPE]
END [Agency]
, CASE
WHEN [B1].[B1_PER_SUB_TYPE] NOT IN ('Landlord Registration', 'Foreclosure Registration')
AND [R3].[R1_PER_TYPE] = 'Building Inspection'
AND [R3].[R1_PER_GROUP] = 'Licenses' THEN 'License '+[R3].[R1_APP_TYPE_ALIAS]
ELSE REPLACE([R3].[R1_APP_TYPE_ALIAS], '/NA', '')
END [Record Type]
, COUNT([B1].[B1_ALT_ID]) [Count of Records]
, COUNT([B1].[B1_ACCESS_BY_ACA]) [ACA]
FROM
[R3APPTYP] [R3]
LEFT OUTER JOIN [B1PERMIT] [B1]
ON [R3].[SERV_PROV_CODE] = [B1].[SERV_PROV_CODE]
AND [R3].[R1_PER_GROUP] = [B1].[B1_PER_GROUP]
AND [R3].[R1_PER_TYPE] = [B1].[B1_PER_TYPE]
AND [R3].[R1_PER_SUB_TYPE] = [B1].[B1_PER_SUB_TYPE]
AND [R3].[R1_PER_CATEGORY] = [B1].[B1_PER_CATEGORY]
AND LEFT([B1_ALT_ID], 3) <> 'TMP'
AND DATEPART([m], [B1].[B1_FILE_DD]) = DATEPART([m], DATEADD([m], -1, GETDATE()))
AND DATEPART([yyyy], [B1].[B1_FILE_DD]) = DATEPART([yyyy], DATEADD([m], -1, GETDATE()))
WHERE
[R3].[SERV_PROV_CODE] = 'MISOULA'
AND [R3].[REC_STATUS] = 'A'
GROUP BY
CASE
WHEN [R3].[R1_APP_TYPE_ALIAS] IN('Permitted Use Site Plan Review', 'Minor Alteration to Approved Conditional Use', 'Minor Alteration to Approved Planned Unit Development') THEN 'Zoning'
WHEN [R3].[R1_APP_TYPE_ALIAS] IN('Code Enforcement Mileage', 'Renewal Registration', 'Rental Property Emergency Contact', 'W&M License') THEN 'Building Inspection'
WHEN [R3].[R1_PER_TYPE] IN('Annexation', 'Condominium', 'Land Management', 'Land Use', 'Landmark', 'Subdivision') THEN 'Planning'
WHEN [R3].[R1_PER_GROUP]+'/'+[R3].[R1_PER_TYPE] = 'AMS/Equipment'
OR [R3].[R1_PER_GROUP]+'/'+[R3].[R1_PER_TYPE] = 'AMS/Vehicle'
OR [R3].[R1_PER_GROUP]+'/'+[R3].[R1_PER_TYPE] = 'AMS/Facility'
OR [R3].[R1_APP_TYPE_ALIAS] = 'As-Built Request'
OR LEFT([R3].[R1_PER_TYPE], 11) = 'Engineering' THEN 'Engineering'
WHEN [R3].[R1_APP_TYPE_ALIAS] = 'Edible Landscape Permit' THEN 'Mayor'
WHEN [R3].[R1_PER_GROUP] = 'LICENSES'
AND [R3].[R1_PER_TYPE] = 'Building Inspection' THEN 'Building'
WHEN [R3].[R1_PER_TYPE] = 'Traffic' THEN 'Traffic Engineering'
WHEN LEFT([R3].[R1_PER_TYPE], '7') = 'Streets' THEN 'Streets'
WHEN [R3].[R1_PER_GROUP] = 'AnimalServices' THEN 'Health'
ELSE [R3].[R1_PER_TYPE]
END
, CASE
WHEN [B1].[B1_PER_SUB_TYPE] NOT IN('Landlord Registration', 'Foreclosure Registration')
AND [R3].[R1_PER_TYPE] = 'Building Inspection'
AND [R3].[R1_PER_GROUP] = 'Licenses' THEN 'License '+[R3].[R1_APP_TYPE_ALIAS]
ELSE REPLACE([R3].[R1_APP_TYPE_ALIAS], '/NA', '')
END)
[MonthlyRecords]
ON [RecordTypes].[Agency] = [MonthlyRecords].[Agency]
AND [RecordTypes].[Record Type] = [MonthlyRecords].[Record Type]
ORDER BY
[RecordTypes].[Agency]
, [RecordTypes].[Record Type];
Определение таблицы - B1PERMIT
CREATE TABLE [dbo].[B1PERMIT](
[SERV_PROV_CODE] [varchar](15) NOT NULL,
[B1_PER_GROUP] [varchar](30) NOT NULL,
[B1_PER_TYPE] [varchar](30) NOT NULL,
[B1_PER_SUB_TYPE] [varchar](30) NOT NULL,
[B1_PER_CATEGORY] [varchar](30) NOT NULL,
[B1_FILE_DD] [datetime] NULL,
[B1_ALT_ID] [varchar](30) NULL,
[B1_ACCESS_BY_ACA] [varchar](1) NULL
) ON [PRIMARY]
Определение таблицы - R3APPTYP
CREATE TABLE [dbo].[R3APPTYP](
[SERV_PROV_CODE] [varchar](15) NOT NULL,
[R1_PER_GROUP] [varchar](30) NOT NULL,
[R1_PER_TYPE] [varchar](30) NOT NULL,
[R1_PER_SUB_TYPE] [varchar](30) NOT NULL,
[R1_PER_CATEGORY] [varchar](30) NOT NULL,
[REC_DATE] [datetime] NOT NULL,
[R1_UDCODE3] [varchar](12) NULL,
[REC_STATUS] [varchar](1) NULL,
[R1_APP_TYPE_ALIAS] [varchar](255) NULL
) ON [PRIMARY]
Пример данных - B1PERMIT
MISSOULA Permitting Engineering Erosion Control NA 2018-07-16 00:00:00.000 ENG100-2017-04471 NULL
MISSOULA Permitting Engineering Sewer Plug NA 2017-01-12 00:00:00.000 ENGSRP-2016-04904 NULL
MISSOULA Permitting Parks DiscGolf NA 2017-01-01 00:00:00.000 PRKDGP-2017-00001 Y
MISSOULA Permitting Parks DiscGolf NA 2017-01-01 00:00:00.000 PRKDGP-2017-00003 Y
MISSOULA Permitting Parks DiscGolf NA 2017-01-01 00:00:00.000 PRKDGP-2017-00004 Y
MISSOULA Permitting Parks DiscGolf NA 2017-01-01 00:00:00.000 PRKDGP-2017-00007 Y
MISSOULA Permitting Parks DiscGolf NA 2017-01-01 00:00:00.000 PRKDGP-2017-00009 Y
MISSOULA Permitting Parks DiscGolf NA 2017-01-01 00:00:00.000 PRKDGP-2017-00012 Y
MISSOULA Permitting Parks DiscGolf NA 2017-01-01 00:00:00.000 PRKDGP-2017-00014 Y
MISSOULA Permitting Parks DiscGolf NA 2017-01-02 00:00:00.000 PRKDGP-2017-00017 Y
MISSOULA Permitting Parks DiscGolf NA 2017-01-02 00:00:00.000 PRKDGP-2017-00021 Y
MISSOULA Permitting Parks DiscGolf NA 2017-01-02 00:00:00.000 PRKDGP-2017-00022 Y
MISSOULA Permitting Parks DiscGolf NA 2017-01-02 00:00:00.000 PRKDGP-2017-00024 Y
MISSOULA Permitting Parks DiscGolf NA 2017-01-02 00:00:00.000 PRKDGP-2017-00028 Y
MISSOULA Permitting Parks DiscGolf NA 2017-01-02 00:00:00.000 PRKDGP-2017-00030 Y
MISSOULA Permitting Parks DiscGolf NA 2017-01-03 00:00:00.000 PRKDGP-2017-00032 Y
MISSOULA Permitting Parks DiscGolf NA 2018-01-01 00:00:00.000 PRKDGP-2018-00015 Y
MISSOULA Permitting Parks DiscGolf NA 2018-01-02 00:00:00.000 PRKDGP-2018-00019 Y
MISSOULA Permitting Parks DiscGolf NA 2018-01-04 00:00:00.000 PRKDGP-2018-00156 Y
MISSOULA Permitting Parks DiscGolf NA 2018-01-05 00:00:00.000 PRKDGP-2018-00173 NULL
MISSOULA Permitting Parks DiscGolf NA 2018-01-05 00:00:00.000 PRKDGP-2018-00202 NULL
MISSOULA Permitting Parks DiscGolf NA 2018-01-06 00:00:00.000 PRKDGP-2018-00224 Y
MISSOULA Permitting Parks DiscGolf NA 2018-01-07 00:00:00.000 PRKDGP-2018-00235 Y
MISSOULA Permitting Parks DiscGolf NA 2018-01-07 00:00:00.000 PRKDGP-2018-00238 Y
MISSOULA Permitting Parks DiscGolf NA 2018-01-07 00:00:00.000 PRKDGP-2018-00241 Y
MISSOULA Permitting Parks DiscGolf NA 2018-01-07 00:00:00.000 PRKDGP-2018-00244 Y
MISSOULA Permitting Parks DiscGolf NA 2018-01-08 00:00:00.000 PRKDGP-2018-00257 NULL
MISSOULA Permitting Parks DiscGolf NA 2018-01-08 00:00:00.000 PRKDGP-2018-00258 NULL
MISSOULA Permitting Parks DiscGolf NA 2018-01-08 00:00:00.000 PRKDGP-2018-00259 NULL
MISSOULA Permitting Parks DiscGolf NA 2018-01-08 00:00:00.000 PRKDGP-2018-00260 NULL
Пример данных - R3APPTYP
MISSOULA Licenses Civil Rights AA Plan Exempt 2017-04-26 15:56:27.303 VHAPP A AA Plan Exemption (14 or fewer)
MISSOULA Licenses Civil Rights AA Plan Exempt 2017-04-26 15:56:27.303 VHAPP A AA Plan Exemption (14 or fewer)
MISSOULA Licenses Civil Rights AA Plan Exempt 2017-04-26 15:56:27.303 VHAPP A AA Plan Exemption (14 or fewer)
MISSOULA Licenses Civil Rights AA Plan Exempt 2017-04-26 15:56:27.303 VHAPP A AA Plan Exemption (14 or fewer)
MISSOULA Licenses Civil Rights AA Plan Exempt 2017-04-26 15:56:27.303 VHAPP A AA Plan Exemption (14 or fewer)
MISSOULA Licenses Civil Rights AA Plan Exempt 2017-04-26 15:56:27.303 VHAPP A AA Plan Exemption (14 or fewer)
MISSOULA Licenses Civil Rights AA Plan Exempt 2017-04-26 15:56:27.303 VHAPP A AA Plan Exemption (14 or fewer)
MISSOULA Licenses Civil Rights AA Plan Exempt 2017-04-26 15:56:27.303 VHAPP A AA Plan Exemption (14 or fewer)
MISSOULA Licenses Civil Rights AA Plan Exempt 2017-04-26 15:56:27.303 VHAPP A AA Plan Exemption (14 or fewer)
MISSOULA Licenses Civil Rights AA Plan Exempt 2017-04-26 15:56:27.303 VHAPP A AA Plan Exemption (14 or fewer)
MISSOULA Licenses Civil Rights AA Plan Exempt 2017-04-26 15:56:27.303 VHAPP A AA Plan Exemption (14 or fewer)
MISSOULA Licenses Civil Rights AA Plan Exempt 2017-04-26 15:56:27.303 VHAPP A AA Plan Exemption (14 or fewer)
MISSOULA Licenses Civil Rights AA Plan Exempt 2017-04-26 15:56:27.303 VHAPP A AA Plan Exemption (14 or fewer)
MISSOULA Licenses Civil Rights AA Plan Exempt 2017-04-26 15:56:27.303 VHAPP A AA Plan Exemption (14 or fewer)
MISSOULA Licenses Civil Rights AA Plan Exempt 2017-04-26 15:56:27.303 VHAPP A AA Plan Exemption (14 or fewer)
MISSOULA _Enforcement Building Inspection Housing Rental Prop Emergency Contacts 2018-02-26 16:36:45.987 NA A _Enforcement/Building Inspection/Housing/Rental Prop Emergency Contacts
MISSOULA Land Landmark NA NA 2018-04-18 09:13:50.787 VHAPP A Certificate of Appropriateness Application
MISSOULA Land Landmark NA NA 2018-04-18 09:13:50.787 VHAPP A Certificate of Appropriateness Application
MISSOULA Land Landmark NA NA 2018-04-18 09:13:50.787 VHAPP A Certificate of Appropriateness Application
MISSOULA Land Landmark NA NA 2018-04-18 09:13:50.787 VHAPP A Certificate of Appropriateness Application
MISSOULA Land Landmark NA NA 2018-04-18 09:13:50.787 VHAPP A Certificate of Appropriateness Application
MISSOULA Land Landmark NA NA 2018-04-18 09:13:50.787 VHAPP A Certificate of Appropriateness Application
MISSOULA Land Landmark NA NA 2018-04-18 09:13:50.787 VHAPP A Certificate of Appropriateness Application
MISSOULA Land Landmark NA NA 2018-04-18 09:13:50.787 VHAPP A Certificate of Appropriateness Application
MISSOULA Land Landmark NA NA 2018-04-18 09:13:50.787 VHAPP A Certificate of Appropriateness Application
MISSOULA Land Landmark NA NA 2018-04-18 09:13:50.787 VHAPP A Certificate of Appropriateness Application
MISSOULA Land Landmark NA NA 2018-04-18 09:13:50.787 VHAPP A Certificate of Appropriateness Application
MISSOULA Land Landmark NA NA 2018-04-18 09:13:50.787 VHAPP A Certificate of Appropriateness Application
MISSOULA Land Landmark NA NA 2018-04-18 09:13:50.787 VHAPP A Certificate of Appropriateness Application
MISSOULA Land Landmark NA NA 2018-04-18 09:13:50.787 VHAPP A Certificate of Appropriateness Application