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

Откуда:
Сообщений: 3
Добрый день, у меня есть вот такой запрос:
use [cl_clean]
 declare @discNow int, @discFuture int,@ConnectNow int, @ConnectFuture int;
 SET @discFuture=1
 SET @discNow=1
 SET @ConnectNow=0
 SET @ConnectFuture=0
SELECT
[dbo].[duClientKAV].ClientID, 
[dbo].[duSegmentation].isShared,
[dbo].[duSegmentation].isUSN, 
[dbo].[duSegmentation].isENVD, 
[dbo].[duSegmentation].isBudget, 
[dbo].[duSegmentation].isBank, 
[dbo].[duSegmentation].isAnother, 
[dbo].[duSegmentation].isBux, 
[dbo].[duSegmentation].lawyer, 
[dbo].[duSegmentation].personnelID, 
[dbo].[duSegmentation].EmployeerQNew,
[dbo].[duDistrib].SystemID, 
[dbo].[duDistrib].NetID, 
[dbo].[duDistrib].TechTypeID,
[dbo].[duClientKAV].categoryID, 
[dbo].[duClientKAV].typeID, 
[dbo].[duClientKAV].ClientTypeID,
##Contact2Count.Contact2,
##DemandExpertCount.DemandExpert,
##DocDateCount.DocOrder, 
##EducationCount.Education,
##SeminarCount.Seminar,dbo.duDistrib.DisconnectDate,

	CASE 
		WHEN DisconnectDate is NULL or DisconnectDate > '2006-03-01 00:00:01'  
		THEN @ConnectNow  
		ELSE @discNow 
	END [DiscNow],
	CASE 
		WHEN disconnectDAte is NULL or disconnectDate > '2006-06-01 00:00:01' 
		THEN @ConnectFuture 
		ELSE @discFuture 
	END [DiscFuture]
   
FROM [dbo].[duClientKAV]
	join [dbo].[duSegmentation] on [dbo].[duSegmentation].[clientid]=[dbo].[duClientKAV].ClientID
	join [dbo].[duDistrib] on [dbo].[duDistrib].[clientid]=[dbo].[duClientKAV].ClientID
	join ##Contact2Count on ##Contact2Count.clientid=[dbo].[duClientKAV].ClientID
	join ##DemandExpertCount on ##DemandExpertCount.clientid=[dbo].[duClientKAV].ClientID
	join ##DocDateCount on ##DocDateCount.clientid=[dbo].[duClientKAV].ClientID
	join ##EducationCount on ##EducationCount.clientid=[dbo].[duClientKAV].ClientID
	join ##SeminarCount on ##SeminarCount.clientid=[dbo].[duClientKAV].ClientID

WHERE  ConnectDate > '2006-01-01 00:00:01' and ConnectDate < '2006-03-01 00:00:01' and 
  DisconnectDate >ConnectDate
  
GROUP BY
	[dbo].[duClientKAV].ClientID,
	[dbo].[duSegmentation].isShared,
	[dbo].[duSegmentation].isUSN,  
	[dbo].[duSegmentation].isENVD, 
	[dbo].[duSegmentation].isBudget, 
	[dbo].[duSegmentation].isBank, 
	[dbo].[duSegmentation].isAnother, 
	[dbo].[duSegmentation].isBux, 
	[dbo].[duSegmentation].lawyer,
	[dbo].[duSegmentation].personnelID, 
	[dbo].[duSegmentation].EmployeerQNew,
	[dbo].[duDistrib].SystemID, 
	[dbo].[duDistrib].NetID, 
	[dbo].[duDistrib].TechTypeID,
	[dbo].[duClientKAV].categoryID, 
	[dbo].[duClientKAV].typeID, 
	[dbo].[duClientKAV].ClientTypeID,
	##Contact2Count.Contact2,
	##DemandExpertCount.DemandExpert,
	##DocDateCount.DocOrder, 
	##EducationCount.Education,
	##SeminarCount.Seminar,
    [dbo].[duDistrib].DisconnectDate  
  
ORDER BY
[dbo].[duDistrib].DisconnectDate, [dbo].[duClientKAV].ClientID 


у меня есть данные с 2006 года мне нужно разбить эти данные (за 10 лет ) на сегменты по три месяца(дальше возможно понадобиться разбиение на более мелкие периоды) и вывести каждый запрос в отдельный файл формата csv c уникальным именем, для дальнейшего скармливания програмке R.
Может кто то подскажет как это дело автоматизировать?
30 май 16, 16:38    [19237080]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическая замена дат в запросе.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31427
Goodlike
Может кто то подскажет как это дело автоматизировать?
А это разовая задача, или потом должно работать по расписанию?
Если первое - сделайте пакет на SSIS, типа цикл по временным интервалам, выгрузка в файлы.
Если второе, рассмотрите так же вариант с bcp
30 май 16, 17:17    [19237357]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическая замена дат в запросе.  [new]
Goodlike
Member

Откуда:
Сообщений: 3
alexeyvg,

Объясню зачем вообще это все.
Стоит задача предсказания ухода клиента.
У заказчика В БД зачастую в полях бредовые данные.
И они хотят понять можно ли с их данными предсказать уход клиента с точностью хотя бы в 70%. Где-то на форуме видел подобную задачу, там создавалась отдельная таблица с датами, но не могу найти эту тему.
30 май 16, 17:31    [19237468]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическая замена дат в запросе.  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Goodlike
alexeyvg,

Объясню зачем вообще это все.
Стоит задача предсказания ухода клиента.
У заказчика В БД зачастую в полях бредовые данные.
И они хотят понять можно ли с их данными предсказать уход клиента с точностью хотя бы в 70%. Где-то на форуме видел подобную задачу, там создавалась отдельная таблица с датами, но не могу найти эту тему.

я так понимаю клиент без файлов не уйдёт? или как коррелируются эти два вопроса
30 май 16, 17:35    [19237484]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическая замена дат в запросе.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31427
TaPaK
как коррелируются эти два вопроса
+1 ???

Неважна бизнес-задача, тут важны технические детали постановки задачи экспорта данных.
В первую очередь, выгрузка нужна по расписанию, или разовая.
А, и очень важный вопрос - можно ли сделать так, что бы прога брала данные из сиквела, а не из файлов. Так было бы проще, без лишнего звена.
30 май 16, 18:08    [19237714]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическая замена дат в запросе.  [new]
Goodlike
Member

Откуда:
Сообщений: 3
TaPaK,

Не коррелируются, это к вопросу о единоразовой задаче или же нет.
теперь изучаю SSIS что это и с чем его едят, но это похоже что то очень сложное для человека который только только познакомился с sql)
30 май 16, 18:15    [19237745]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическая замена дат в запросе.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31427
Goodlike
теперь изучаю SSIS что это и с чем его едят, но это похоже что то очень сложное для человека который только только познакомился с sql)
Возможно, для выгрузки в цикле в файлы SSIS будет проще других вариантов.

Ещё вариант, если вы программируете на других языках - написать прогу для выгрузки и записи в файл.
30 май 16, 18:20    [19237771]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить