Я пытался написать этот сложный запрос, где я должен вычислить общее количество FTE по профессиям по годам. Так, например, в org1 за 2011 год у нас есть 2 DataEntryC, общая сумма FTE = 50,95 + 70,95, но теперь я также должен добавить 20% административного персонала, работающего на org1 в 2011 году на FTE. И эта последняя цифра была бы общей суммой FTE для ввода данных. В основном в рамках организации в год общий персонал FTE = все сотрудники FTE + 20% административного персонала FTE. Так, за 2011 год при вводе данных Org1 кларк должны иметь 141,90 FTE (50,95 + 70,95 +20)SQL SERVER 2008 рассчитанный запрос поля
Я написал запрос, как показано ниже, но это только работа, когда есть только одна организация перечислила 2 профессии , Я думаю, что selfjoin может быть ответом ......
update test
set calculated_adjustment= (select calculated_adjustment from test where profession='Admin')
where profession='DataEntryC'
Сценарии:
CREATE TABLE [dbo].[test](
[year] [varchar](5) NULL,
[org_name] [varchar](10) NULL,
[profession] [varchar](10) NULL,
[fte] [float] NULL,
[calculated_adjustment] [float] NULL
)
GO
GO
INSERT [dbo].[test] ([year], [org_name], [profession], [fte], [calculated_adjustment]) VALUES (N'2011', N'org1', N'DataEntryC', 50.95, NULL)
INSERT [dbo].[test] ([year], [org_name], [profession], [fte], [calculated_adjustment]) VALUES (N'2011', N'org1', N'DataEntryC', 70.95, NULL)
INSERT [dbo].[test] ([year], [org_name], [profession], [fte], [calculated_adjustment]) VALUES (N'2011', N'org1', N'Admin', 200, 20)
INSERT [dbo].[test] ([year], [org_name], [profession], [fte], [calculated_adjustment]) VALUES (N'2011', N'org2', N'Admin', 150, NULL)
INSERT [dbo].[test] ([year], [org_name], [profession], [fte], [calculated_adjustment]) VALUES (N'2012', N'org1', N'DataEntryC', 20, NULL)
INSERT [dbo].[test] ([year], [org_name], [profession], [fte], [calculated_adjustment]) VALUES (N'2012', N'org2', N'Admin', 15, NULL)
INSERT [dbo].[test] ([year], [org_name], [profession], [fte], [calculated_adjustment]) VALUES (N'2011', N'org1', N'Support', 50, NULL)
INSERT [dbo].[test] ([year], [org_name], [profession], [fte], [calculated_adjustment]) VALUES (N'2011', N'org1', N'Support', 100, NULL)
INSERT [dbo].[test] ([year], [org_name], [profession], [fte], [calculated_adjustment]) VALUES (N'2012', N'org2', N'Support', 200, NULL)
INSERT [dbo].[test] ([year], [org_name], [profession], [fte], [calculated_adjustment]) VALUES (N'2012', N'org2', N'Admin', 150, NULL)
на 2011 год в Org1 вводе данных кларк должен иметь 141,90 FTE
Если вы указали небольшой сценарий SQL, чтобы настроить таблицу с данными примера, которые вы показали, кто-то может попробовать ответить. –
Добавили скрипт. Большое спасибо за предложение помочь. – user3844877
Ах, я не сказал * I * мог бы помочь, но это облегчит работу, если кто-то, кто умеет SQL, хочет ответить;) –