2012-04-21 2 views
0

У меня есть таблетка продуктов; в том, что есть пара полей, таких как subcatid и designerid, которые поступают из таблиц подкатегорий и дизайнеров соответственно. Администратор веб-сайта (ASP.NET C#) может вставлять какие-то купонные коды в таблицу CouponCodes, выбирая либо конструктор, либо subcatid, либо и то, и другое. Это означает, что конкретный продукт можно продавать дешевле, если в таблице CouponCodes находится либо конструктор, либо подтациевые поля, либо оба для этого продукта. Обратите внимание, что у продукта необязательно есть конструктор или подкатад: администратор может ввести «N/A» для того, чтобы либо вводить Продукт; N/A имеет конструктор из 27 и субтип из 9 в своих соответствующих таблицах. Вероятно, это не лучший дизайн базы данных.sql server: выберите либо условия, используя предложение OR?

В любом случае, вот мой код в SSMS; когда я пытаюсь выполнить его, я получаю ошибку синтаксиса. Как реализовать sql? Благодаря!

select * from couponcodes 
where (couponcodes.subcatid in 
(select subcatid from Products where Products.prodid = 1012) 
AND (couponcodes.couponcode = '5braceLets')) 

OR 

Where (couponcodes.designerid in 
(select designerid from Products where Products.prodid = 1012) 
AND (couponcodes.couponcode = '5dora')) 

ответ

0

У вас есть where, который вызывает синтаксическую ошибку. Что вы хотите сделать, это

select * from couponcodes 
where (couponcodes.subcatid in 
(select subcatid from Products where Products.prodid = 1012) 
AND (couponcodes.couponcode = '5braceLets')) 
OR 
(couponcodes.designerid in 
(select designerid from Products where Products.prodid = 1012) 
AND (couponcodes.couponcode = '5dora')) 
+0

О, позвольте мне попробовать ... – IrfanClemson

+0

ОК, синтаксис работает. позвольте мне проверить другое поле - поле expirationdate в таблице купонных кодов ... – IrfanClemson

+0

Я выяснил дату истечения срока действия, добавив: AND couponcodes.expirationdate> GetDATE(); Я думаю, что ваш ответ будет работать. Большое спасибо! Я буду отмечать, что вы так же ответили ... – IrfanClemson

Смежные вопросы