Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выбрать детей "подарочного" возраста, [Новогодний пример] 
V
    Опции темы
mrbuu
Дата 14.1.2009, 00:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 14.1.2009

Репутация: нет
Всего: нет



Привет
У меня проблема, есть несколько таблиц
Код

create table GESCHENK(Geschenk varchar(80), MinAlter int, primary key(Geschenk));
create table WUNSCHZETTEL(Kind varchar(80), Geschenk varchar(80), primary key(Kind, Geschenk));
create table KIND(Kind varchar(80), Alte int, primary key(Kind));

insert into GESCHENK values ('Lego', 6);
insert into GESCHENK values ('Teddy', 1);
insert into GESCHENK values ('Handy', 10);
insert into GESCHENK values ('PC', 12);
insert into GESCHENK values ('Eisenbahn', 6);
insert into GESCHENK values ('Teleskop', 9);
insert into GESCHENK values ('Porsche', 18);
insert into GESCHENK values ('Schach', 8);
insert into GESCHENK values ('DVD', 12);

insert into WUNSCHZETTEL values ('Lara', 'PC');
insert into WUNSCHZETTEL values ('Lara', 'Porsche');
insert into WUNSCHZETTEL values ('Lara', 'Teddy');
insert into WUNSCHZETTEL values ('Susi', 'Schach');
insert into WUNSCHZETTEL values ('Susi', 'DVD');
insert into WUNSCHZETTEL values ('Ole', 'Handy');
insert into WUNSCHZETTEL values ('Ole', 'Lego');
insert into WUNSCHZETTEL values ('Bjorn', 'Teleskop');
insert into WUNSCHZETTEL values ('Julie', 'Handy');
insert into WUNSCHZETTEL values ('Julie', 'Eisenbahn');

insert into KIND values ('Julie', 8);
insert into KIND values ('Peter', 10);
insert into KIND values ('Lara', 6);
insert into KIND values ('Bjorn', 14);
insert into KIND values ('Ole', 8);
insert into KIND values ('Jimmy', 4);
insert into KIND values ('Susi', 14);


проблема заключается в том, что надо сравнивать возраст детей с "минимальным" возрастом для подарка.
Буду благодарен за ответ.
PM MAIL   Вверх
ТоляМБА
Дата 14.1.2009, 08:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Котэ
***


Профиль
Группа: Завсегдатай
Сообщений: 1607
Регистрация: 15.12.2004

Репутация: 4
Всего: 252



Цитата(mrbuu @  14.1.2009,  02:18 Найти цитируемый пост)
надо сравнивать возраст детей с "минимальным" возрастом для подарка.


Код
SELECT GESCHENK.Geschenk, GESCHENK.MinAlter, KIND.Kind, KIND.Alte
FROM GESCHENK, KIND
WHERE GESCHENK.MinAlter<=KIND.Alte


Покажет тебе подарки и детей которым данные подарки можно дарить. Лишние поля уберешь. Зачем ты привёл таблицу WUNSCHZETTEL я не догнал.


PM   Вверх
SergKO
Дата 14.1.2009, 08:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 14.3.2005

Репутация: нет
Всего: 20



Самое простое
Код

select *
from dbo.KIND k
    inner join dbo.GESCHENK g on g.MinAlter < k.Alte

PM MAIL   Вверх
ТоляМБА
Дата 14.1.2009, 08:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Котэ
***


Профиль
Группа: Завсегдатай
Сообщений: 1607
Регистрация: 15.12.2004

Репутация: 4
Всего: 252



SergKO, Julie и Ole останутся без Schach, я правда не знаю что это такое, но спасибо они тебе явно не скажут  smile 
PM   Вверх
SergKO
Дата 14.1.2009, 08:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 14.3.2005

Репутация: нет
Всего: 20



"Проглядел" ответ от ТоляМБА. В смысле не заметил  smile 

Практически одно и то же, кроме условия. Поставь <=. 



Это сообщение отредактировал(а) SergKO - 14.1.2009, 09:24
PM MAIL   Вверх
mrbuu
Дата 14.1.2009, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 14.1.2009

Репутация: нет
Всего: нет



Цитата(ТоляМБА @  14.1.2009,  08:33 Найти цитируемый пост)
Зачем ты привёл таблицу WUNSCHZETTEL я не догнал.

да значит я плохо обяснил.
по wunschzettel видно кто какой подарок заказал на новый год.
Т.е. Bjorn'у 14 лет и он хочет Teleskop, Teleskop можно получить если ребенку исполнолось 9 лет.
PM MAIL   Вверх
vladimir74
Дата 14.1.2009, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 241
Регистрация: 28.11.2006

Репутация: нет
Всего: 3



попробуй так...
Код

select w.Kind, w.Geschenk
from WUNSCHZETTEL as w
inner join GESCHENK  as gon (g.Geschenk=w.Geschenk)
inner join Kind as k  on (k.Kind=w.Kind)
where g.MinAlter <= k.Alte


Цитата(ТоляМБА @  14.1.2009,  06:52 Найти цитируемый пост)
Julie и Ole останутся без Schach, я правда не знаю что это такое,

это обычные шахматы, но заказывала их кажется Susi...
--------------------
* В доме помешанного не говорят о миксере.* На любой Ваш вопрос у меня есть любой мой ответ.
PM MAIL   Вверх
mrbuu
Дата 14.1.2009, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 14.1.2009

Репутация: нет
Всего: нет



работает, спасибо большое, какой хитрый этот инер джоин ;)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.0732 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.