Несоответствие типов данных в выражении критерия

#sql #ms-access

Вопрос:

Я совершенно новичок в SQL и постоянно получаю несоответствие типов данных в выражении критерия. Пытаюсь понять, где можно внести изменения.

 SELECT AVG(Price)
FROM Book, OrderLine, [Order]
WHERE OrderDeliveryDate > '2016/05/05' and Order.OrderNo = OrderLine.OrderNo and Book.ISBN = OrderLine.ISBN and PercentageDiscount = 'NULL';
 

Комментарии:

1. не могли бы вы поделиться более подробной информацией,такой как столбцы таблиц, и вашими ожиданиями от выходных данных?

2. Основываясь на критериях фильтрации, я думаю, что будет лучше, если вы сможете использовать объединения.

3. Попытка получить среднюю цену до скидки на все книги, которые были доставлены после 5 мая 2016 года

4. можете ли вы поделиться подробностями используемых вами таблиц? в каких таблицах есть столбцы «цена», «Дата доставки заказа», «Количество в процентах»?

5. Книга — ISBN, Название, Категория, Акции, Цена, Б / у / Строка заказа — OrderNo, Ранг заказа, ISBN, Количество, Процентная скидка / Заказ — OrderNo, Дата заказа, Дата доставки заказа, Идентификатор клиента

Ответ №1:

Попробуйте использовать INNER JOIN синтаксис и правильные типы данных:

 SELECT 
    AVG(Price)
FROM 
    ([Order]
INNER JOIN
    OrderLine ON [Order].OrderNo = OrderLine.OrderNo)
INNER JOIN
    Book ON OrderLine.ISBN = Book.ISBN
WHERE 
    OrderDeliveryDate > #2016/05/05# And 
    PercentageDiscount Is Null;