Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
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] Ответить | Цитировать Сообщить модератору |
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 | ![]() |