LINUX.ORG.RU

Сообщения zoonoox

 

SQL

 ,

Сразу извиняюсь если пишу не туда. Нужен скрипт который будет будет брать информацию из 3 таблиц (contactlog, interviewer и InterviewerFieldworkAvailability). interviewenumber есть во всех 3 таблицах, в принципе это основное что нужно знать. Должно выгружаться: номер интервьюера, фио, shiftname (min и max) и все это естественно за каждый день выбранного периода (+ обязательное условие за каждый контакт). Вот что у меня получилось, но к сожалению где то ошибка, ОЧЕНЬ много повторных строк, ну и естественно очень долго выгружается. Помогите разобраться, где ошибка.

select

a.InterviewerNumber, b.FirstName, b. lastname, dbo.ShiftName(c.MinShift), dbo.ShiftName(c.MaxShift), s.contactdate

from dbo.InterviewerFieldworkAvailability as a LEFT JOIN dbo.Interviewer as b on a.Interviewernumber=b.Interviewernumber LEFT JOIN dbo.contactlog as s on a.Interviewernumber=s.Interviewernumber LEFT JOIN ( SELECT InterviewerNumber, min(ShiftNumber) as minShift, max(ShiftNumber) as maxShift FROM dbo.InterviewerFieldworkAvailability GROUP BY InterviewerNumber ) as c on c.InterviewerNumber = a.InterviewerNumber

where ContactDate > ('2014-04-01 01:00:00.000') and ContactDate < ('2014-04-30 23:59:00.000') and a.InterviewerNumber >= '1000' and a.InterviewerNumber <= '9999' and b.FirstName not like '%(new_2П)%' and b.FirstName not like '%(new_2)%' and b.LastName not like '%(2)%' and a.InterviewerNumber not in (0,1000,1111, 7038, 6180, 7404, 8587, 2000, 7547, 6000, 1849, 7474, 4180, 8814, 8081, 6702, 9574, 1830, 3778, 9449, 8139, 3314, 8918)

zoonoox
()

RSS подписка на новые темы