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

Откуда:
Сообщений: 1
Скажите в чем ошибка, пожалуйста.
Пишет: Invalid column name 'God_proizvodstva'. и где в IF God_proizvodstva подчеркивает, а в конце нет

--Процедура, выдающая ФИО владельца, номер водительского удостоверения и номер ТС, если год производства ТС >= заданному
Программный код:
Create procedure proced16
@g int
As
If (@g<=God_proizvodstva)
Begin 
Select FIO_vladelets, Number_udostover, Numder_TC
From dbo.transp_sredstvo,dbo.vladelets,dbo.vodit_udostover
Where dbo.transp_sredstvo.Kod_vladelets=dbo.vladelets.Kod_vladelets
And dbo.vladelets.Kod_vladelets=dbo.vodit_udostover.Kod_vladelets
And God_proizvodstva=@g;
End
Else Print 'Нет ТС старше заданного года'
Go


Сообщение было отредактировано: 14 май 15, 23:18
14 май 15, 22:57    [17642435]     Ответить | Цитировать Сообщить модератору
 Re: Помогите создать процедуру с IF  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1723
Alina27,

потому что такое условие невозможно впринципе.

вы в операторе if пытаетесь выбрать столбец не обращаясь к целевой таблице, правильней было бы что то вроде такого:
Create procedure proced16
@g int
AS BEGIN
IF EXISTS (SELECT 1 FROM transp_sredstvo WHERE God_proizvodstva <= @g)
SELECT
         FIO_vladelets,
         Number_udostover,
         Numder_TC
From dbo.transp_sredstvo t1
       JOIN dbo.vladelets t2 ON t2.Kod_vladelets = t1.Kod_vladelets
       JOIN dbo.vodit_udostover t3 ON t3.Kod_vladelets = t1.Kod_vladelets
WHERE God_proizvodstva <=@g
ELSE
       PRINT 'Нет ТС старше заданного года'
END
GO
14 май 15, 23:40    [17642549]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить