#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;