Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 связь столбцов (получение в столбцах различные значения) по какой-то переменной  [new]
asemen83
Member

Откуда: Москва
Сообщений: 31
На предыдущей работе получалось формировать одним запросом различные данные в столбцах одним запросом

Например,

Кол-во обращений Зарегистрированных и решенных обращений в отчетном периоде

declare @from datetime
declare @to datetime
set @from='20080601'
set @to='20080701'

select  distinct itsm_persons.per_name,
 (select count(ass1.slc_ser_per_oid)
 from itsm_servicecalls as ass1 
 where ass1.slc_ser_per_oid=ass.slc_ser_per_oid 
 and dateadd(hh,datediff(hh,GETUTCDATE(),getdate()),ass1.reg_created) between @from
 and @to) as 'Зарегистрировано',
 
 (select count(ass2.ser_ass_per_to_oid)
 from itsm_servicecalls as ass2
 left join itsm_ser_custom_fields on itsm_ser_custom_fields.scf_ser_oid=ass2.ser_oid
 where ass2.ser_ass_per_to_oid=ass.slc_ser_per_oid 
 and dateadd(hh,datediff(hh,GETUTCDATE(),getdate()),dbo.ITSM_SER_CUSTOM_FIELDS.SCF_SCDATE2) between @from
 and @to) as 'Решение' 

from  dbo.ITSM_SERVICECALLS as ass
 left join itsm_persons on ass.slc_ser_per_oid=itsm_persons.per_oid
 left join dbo.ITSM_MEMBERS on dbo.ITSM_MEMBERS.MEM_PER_OID=ass.slc_ser_per_oid

На текущем месте работы не получется

declare @from datetime
declare @to datetime

set @from='20090917'
set @to='20090918'

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

SELECT distinct Группы.Имя, 

 (select count(ass1.id)
 from V_обращения as ass1 
  where ass1.id = ass.id
	and ass1.Дата_Создания between @from and @to
	
),
 
(select count(ass2.id)
 from V_обращения as ass2
  where ass2.id = ass.id
	and ass2.Дата_Создания between @from and @to
	and ass2.Факт_Окончание between @from and @to
)

from  dbo.V_Обращения as ass
 left join dbo.Группы on ass.Группа=dbo.Группы.Имя


Сообщение было отредактировано: 19 окт 09, 15:12
19 окт 09, 15:11    [7805946]     Ответить | Цитировать Сообщить модератору
 Re: связь столбцов (получение в столбцах различные значения) по какой-то переменной  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36801
"Не получается" - это такое сообщение об ошибке?
Попробуйте поменять работу еще раз, должно помочь.

Сообщение было отредактировано: 19 окт 09, 15:13
19 окт 09, 15:13    [7805958]     Ответить | Цитировать Сообщить модератору
 Re: связь столбцов (получение в столбцах различные значения) по какой-то переменной  [new]
asemen83
Member

Откуда: Москва
Сообщений: 31
Вместо значений (количества зарегистрированных и решенных обращений) указывается только факт наличия / отсутствия обращений

Санкт-Петербург 0 0
Внедрение 0 0
Благовещенск (Хабаровск) 1 1
Рязань (Воронеж) 0 0
Ростов-на-Дону (Краснодар) 1 0
19 окт 09, 15:33    [7806132]     Ответить | Цитировать Сообщить модератору
 Re: связь столбцов (получение в столбцах различные значения) по какой-то переменной  [new]
ТАРАКАН
Member

Откуда:
Сообщений: 439
быстрей помогут если вы приведете примеры таблиц с заполнением тестовых данных
19 окт 09, 15:42    [7806208]     Ответить | Цитировать Сообщить модератору
 Re: связь столбцов (получение в столбцах различные значения) по какой-то переменной  [new]
Var79
Member

Откуда:
Сообщений: 890
Гавриленко Сергей Алексеевич
"Не получается" - это такое сообщение об ошибке?
Попробуйте поменять работу еще раз, должно помочь.

подстолом
19 окт 09, 15:54    [7806328]     Ответить | Цитировать Сообщить модератору
 Re: связь столбцов (получение в столбцах различные значения) по какой-то переменной  [new]
asemen83
Member

Откуда: Москва
Сообщений: 31
Таблица обращений

declare @from datetime
declare @to datetime

set @from='20090917'
set @to='20090918'

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

select ass1.Дата_создания, ass1.id
from V_обращения as ass1
where ass1.Дата_Создания between @from and @to

Результат

2009-09-17 09:00:21.940 929210
2009-09-17 09:00:27.940 929212
2009-09-17 09:02:31.940 929213
2009-09-17 09:02:57.940 929214
2009-09-17 09:04:45.940 929215
2009-09-17 09:07:40.940 929218
2009-09-17 09:08:04.940 929219

Таблица групп

declare @from datetime
declare @to datetime

set @from='20090917'
set @to='20090918'

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

SELECT distinct Группы.Имя, ass.id

from dbo.V_Обращения as ass
left join dbo.Группы on ass.Группа=dbo.Группы.Имя

where ass.Дата_Создания between @from and @to
and ass.Факт_Окончание between @from and @to

Результат

1С Лизинг 929319
Администратор SD 930144
Архангельск (Санкт-Петербург) 929264
Архангельск (Санкт-Петербург) 929321
Архангельск (Санкт-Петербург) 929417
Архангельск (Санкт-Петербург) 929458
Архангельск (Санкт-Петербург) 929748
Архангельск (Санкт-Петербург) 930047
Архангельск (Санкт-Петербург) 930397
Архангельск (Санкт-Петербург) 930551
19 окт 09, 15:58    [7806351]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить