Начало » Использование СУБД » Microsoft SQL Server » Период (Создать период от заданной даты) 
	| 
		
 |  
	| 
		
 |  
	
		
		
			| Re: Период [сообщение #3523 является ответом на сообщение #3522] | 
			Wed, 25 October 2023 12:01    | 
		 
		
			
				
				
				
					
						  
						krioxi
						 Сообщений: 16 Зарегистрирован: October 2023 
						
					 | 
					Junior Member  | 
					 | 
		 
		 
	 | 
 
	
		select 
	CONVERT(VARCHAR(5), ServDate, 08) AS ServDate, 
	Quantity, 
	Additional, 
	Visit.OpenDate as OpenDate, 
	Visit.CloseDate as CloseDate, 
	 EmployeeSet.Name as Name11, 
	     Price 
 
FROM 
	ServedSet 
		INNER JOIN 
		(	SELECT  
				Name,  
				CONVERT (date, OpenDate) as OpenDate, 
				CONVERT (date, CloseDate) as CloseDate, 
				VisitsSet.Id AS VisitID, 
				Birth, 
				Clients_Category as Category 
 
			FROM 
				VisitsSet 
 
				JOIN ClientsSet 
					ON Visits_Clients = ClientsSet.Id 
		) AS Visit 
			ON ServedSet.Served_Visits = Visit.VisitID 
 
	INNER JOIN 
		ServicesSet 
			ON Served_Services = ServicesSet.Id 
	 
	INNER JOIN 
		EmployeeSet 
			ON Served_Employee = EmployeeSet.Id 
			 
 
WHERE 
		IsServed in (0,1)  
		AND 
		OpenDate = @Zaezd AND  
		Visit.Name = (@Client) 
		AND  
		Type !='СБ' 
	Пример:              
@Zaezd-заезд 27.08.2023 (длится 14 дней) 
@Client-фио клиента 
28.08,29.08,31.08,5.09,7.09 массаж 
нужно чтобы отображались все дни с27.08 по  10.09
		
		
		
 |  
	| 
		
	 | 
 
 
 |  
	| 
		
 |  
	| 
		
 |  
	| 
		
 |  
	
		
		
			| Re: Период [сообщение #3593 является ответом на сообщение #3578] | 
			Wed, 01 November 2023 10:58   | 
		 
		
			
				
				
				
					
						  
						BlackEric
						 Сообщений: 393 Зарегистрирован: June 2022 
						
					 | 
					Senior Member  | 
					 | 
		 
		 
	 | 
 
	
		Что не получается? Вывести даты в запросе на несколько дней вперед от переданной? 
 
Как-то так: 
use testdb
Go
IF OBJECT_ID(N'tempdb..#Accounts') IS NOT NULL  
   DROP TABLE #Accounts;  
 
CREATE TABLE #Accounts ( CreatedAt DATE, Balance MONEY)
 
DECLARE @rate FLOAT, @period INT, @sum MONEY, @date DATE
SET @date = GETDATE()
SET @rate = 0.065;
SET @period = 10;
SET @sum = 10000;
 
WHILE @period > 0
    BEGIN
        INSERT INTO #Accounts VALUES(@date, @sum)
        SET @period = @period - 1
        SET @date = DATEADD(day, 1, @date)
        SET @sum = @sum + @sum * @rate
    END;
 
SELECT * FROM #Accounts  
		
		
		
 |  
	| 
		
	 | 
 
 
 |   
Переход к форуму:
 
 Текущее время: Tue Nov 04 04:05:33 GMT+3 2025 
 Общее время, затраченное на создание страницы: 0.01124 секунд 
 |