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

Откуда: Украина, Донецк
Сообщений: 61
У меня есть функция которая выводит промежуток между двух дат и код этого промежутка которые в дальнейшем будут передаваться в другую таблицу, но я никак не могу понять почему у меня появляется проблема с составным идентификатором..

Таблица из которой берутся значения для функции:
Код_расписания
Период_с
Период_по

Функция:
ALTER FUNCTION [dbo].[DateList](@from DATE, @till DATE, @key INT)
RETURNS @list TABLE (kod INT,dt DATE)
BEGIN

	BEGIN
	WHILE @from <= @till BEGIN
		INSERT INTO @list VALUES(@key, @from) 
		SET @from = DATEADD(day, 1, @from)
		END
	END	
	RETURN
END


Функция выполняет как раз то, что мне нужно.. но мне желательно просматривать все записи в таблице и получать все эти промежутки с кодами.. Не судите строго, я все-то студентка
14 дек 12, 00:23    [13629433]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с составным идентификатором в функции  [new]
One_question
Member

Откуда: Украина, Донецк
Сообщений: 61
Пробовала делать что-то в стиле TOP 1 для таблицы.. но видимо я все равно не понимаю что есть составной идентификатор
14 дек 12, 00:25    [13629441]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с составным идентификатором в функции  [new]
invm
Member

Откуда: Москва
Сообщений: 9915
cross apply вместо join.
14 дек 12, 00:41    [13629473]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с составным идентификатором в функции  [new]
One_question
Member

Откуда: Украина, Донецк
Сообщений: 61
invm, к сожалению это все равно не решает мою проблему.. Допустим я пишу
USE [Аэропорт]
GO

SELECT * FROM dbo.DateList(dbo.тРасписания.Период_с, dbo.тРасписания.Период_по, dbo.тРасписания.Код_расписания)
	CROSS APPLY  dbo.тРасписания 


На что получаю злополучное
Сообщение 4104, уровень 16, состояние 1, строка 3
Не удалось привязать составной идентификатор "dbo.тРасписания.Период_с".
Сообщение 4104, уровень 16, состояние 1, строка 3
Не удалось привязать составной идентификатор "dbo.тРасписания.Период_по".
Сообщение 4104, уровень 16, состояние 1, строка 3
Не удалось привязать составной идентификатор "dbo.тРасписания.Код_расписания".
14 дек 12, 10:34    [13630173]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с составным идентификатором в функции  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 32175
One_question
invm, к сожалению это все равно не решает мою проблему.. Допустим я пишу
USE [Аэропорт]
GO

SELECT * FROM dbo.DateList(dbo.тРасписания.Период_с, dbo.тРасписания.Период_по, dbo.тРасписания.Код_расписания)
Так писать надо правильно...
SELECT * FROM dbo.тРасписания r
	CROSS APPLY  dbo.DateList(r.Период_с, r.Период_по, r.Код_расписания)
14 дек 12, 10:37    [13630187]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с составным идентификатором в функции  [new]
One_question
Member

Откуда: Украина, Донецк
Сообщений: 61
alexeyvg, Спасибо огромное! Всё работает!
14 дек 12, 10:44    [13630223]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с составным идентификатором в функции  [new]
AnaceH
Member

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

Вот только вы выбрали крайне неоптимальный способ решения своей задачи. Советую сначала гуглить, а не бросаться решать типовые задачи sql циклами.
14 дек 12, 10:48    [13630250]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с составным идентификатором в функции  [new]
One_question
Member

Откуда: Украина, Донецк
Сообщений: 61
AnaceH,
К сожалению ввиду недостаточного опыта мне даже сложно представить как может еще выглядеть моя задача..
Обещаю через пару лет исправиться

К сообщению приложен файл. Размер - 79Kb
14 дек 12, 10:54    [13630280]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить