#stored-procedures
#хранимые процедуры
Вопрос:
У меня есть таблица tblcategory
со столбцами categoryid , shopid , title, logicalcode
.
У меня есть вторая таблица tblproduct
со столбцами productid, shopid, producttitle ,price ,logicalcode , available
.
У меня есть третья таблица categoryproduct
со столбцами categoryproductid, categoryid, productid
У меня есть представление в виде таблицы для отображения продуктов в заданной категории со столбцами producttitle
и logicalcode
.
Я написал хранимую процедуру с входным параметром as categoryid
(обязательным) для получения списка продуктов в этой категории:
@categoryid int
AS
BEGIN
SELECT P.Title, P.LogicalCode
FROM tblProduct AS P
JOIN tblCategory AS C
WHERE P.LogicalCode=C.LogicalCode AND
WHERE C.CategoryID=@categoryid
END
Но я получил ошибку, близкую к условию «ГДЕ»
Кто-нибудь, пожалуйста, поможет мне?
Комментарии:
1. является ли CategoryID значением INT? Очевидно, что у вас есть два неправильных WHERE’а, но вы упоминаете ниже, что вы удалили один, и он по-прежнему выдает ошибки.
Ответ №1:
У вас есть два WHERE
предложения. Это должно быть:
WHERE P.LogicalCode=C.LogicalCode AND
C.CategoryID=@categoryid
Редактировать
Хорошо, попробуйте
SELECT P.Title,P.LogicalCode
FROM tblProduct P
JOIN tblCategory C
ON P.LogicalCode=C.LogicalCode
WHERE C.CategoryID=@categoryid
Комментарии:
1. Не беспокойтесь — это была комбинация двух
WHERE
и плохойJOIN
Ответ №2:
Должно быть:
SELECT P.Title,P.LogicalCode
FROM tblProduct AS P JOIN tblCategory AS C
WHERE P.LogicalCode=C.LogicalCode
AND C.CategoryID=@categoryid
Комментарии:
1. Я получил такую же ошибку, как это сообщение 156, уровень 15, состояние 1, процедура uspCategoryFetch, строка 10 С неправильным синтаксисом возле ключевого слова ‘WHERE’.
2. Вам также необходимо указать, с помощью чего вы объединяете P и C. Например…. ИЗ tblProduct P ПРИСОЕДИНИТЕСЬ К tblCategory C С ПОМОЩЬЮ P.CategoryKey = C.ID …..