Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите с объединением таблиц

15K
17 сентября 2007 года
saypn
8 / / 29.05.2006
Здравствуйте. Нужна ваша помощь!
Вот на паре задали сделать запросы, некоторые написал, а с другими ничерта не получается.

В базе 3 таблицы

1. Поставщик:
- имя
- provider_id
2. Поставка:
- дата
- цена за единицу
- количество товара
- provider_id
- goods_id
- количество
3. Товар:
- название
- goods_id

А запросы такие:

1. Выбрать поставщиков, которые поставляют все товары
2. Вывести названия товаров, цены на которые никогда не повышались
3. Определить, на сколько единиц возросли поставки товара XXX в 2001 году по сравнению с 2000

Спасибо.
251
18 сентября 2007 года
SkyMаn
1.7K / / 31.07.2007
Вопрос в чем? Таблицу сделать или запросы. Или и то, и другое?

PS. не могу понять, зачем же тогда идти учиться, если неохота самому решать?
263
18 сентября 2007 года
koltaviy
816 / / 16.12.2004
Цитата: SkyM@n
Вопрос в чем? Таблицу сделать или запросы. Или и то, и другое?

PS. не могу понять, зачем же тогда идти учиться, если неохота самому решать?


Прочитай пост аффтара еще раз:
1) Он ясно сказал, что ему нужно написАть запросы
2) Он сказал, что это те запросы, которые ему не удалось написАть

263
18 сентября 2007 года
koltaviy
816 / / 16.12.2004
Цитата: saypn
Здравствуйте. Нужна ваша помощь!
Вот на паре задали сделать запросы, некоторые написал, а с другими ничерта не получается.

В базе 3 таблицы

1. Поставщик:
- имя
- provider_id
2. Поставка:
- дата
- цена за единицу
- provider_id
- goods_id
- количество
3. Товар:
- название
- goods_id

А запросы такие:

1. Выбрать поставщиков, которые поставляют все товары
2. Вывести названия товаров, цены на которые никогда не повышались
3. Определить, на сколько единиц возросли поставки товара XXX в 2001 году по сравнению с 2000

Спасибо.


Вопрос такой: а структуру таблиц сам делал? Потому, что она мне видется неправильной.

15K
19 сентября 2007 года
saypn
8 / / 29.05.2006
Структура таблиц была задана.
1-ый и 2-ой запросы я написал. Остался 3-ий, и с ним непонятно что делать. Могу подсчитать поставки XXX за один год (работает ОК):

(SELECT sum(amount)
FROM delivery INNER JOIN goods ON delivery.goods_id=goods.goods_id
WHERE delivery_date Between #1/1/2000# And #12/31/2000# And goods.goods_name='Тапочки для тараканов');

Аналогично для 2001 года. Когда делаю SELECT(для 2001 года) - SELECT(для 2000 года), вываливается ошибка. Может есть какие нетривиальные способы из одного селекта вычесть другой?
263
19 сентября 2007 года
koltaviy
816 / / 16.12.2004
Вроде так. Проверить не могу. Завтра если чо поправлю, если время будет. Может раньше кто откликнется :)
 
Код:
SELECT (t_1.Amount - t_2.Amount) AS Amount
FROM
(SELECT sum(amount) AS Amount
FROM delivery INNER JOIN goods ON delivery.goods_id=goods.goods_id
WHERE delivery_date Between #1/1/2001# And #12/31/2001# And goods.goods_name='Тапочки для тараканов') t_1,
(SELECT sum(amount) AS Amount
FROM delivery INNER JOIN goods ON delivery.goods_id=goods.goods_id
WHERE delivery_date Between #1/1/2000# And #12/31/2000# And goods.goods_name='Тапочки для тараканов') t_2;
..
15K
20 сентября 2007 года
saypn
8 / / 29.05.2006
2 koltaviy

Огромное спасибо за помощь. Все работает.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог