Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.04.2011, 22:03   #1
strangegirl
Пользователь
 
Регистрация: 04.11.2010
Сообщений: 19
Восклицание SQL Запрос на количество

Помогите пожалуйста! У меня есть 3 таблицы в БД:
1) Солдат (КодС, Фамилия)
2) Оружие (КодО,Название,Масса)
3) Экипировка (КодО,КодС,Количество) - таблица,где описывается кто,чем и в каком кол-ве владеет.

Нужно написать запрос, который выводит сколько и какого оружия необходимо,чтобы снарядить солдат.
strangegirl вне форума Ответить с цитированием
Старый 28.04.2011, 14:41   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

э, обычный связанный запрос из трёх таблиц?

Это оружие с разбивкой по солдатам:
Код:
SELECT * FROM Солдат, Оружие, Экипировка
WHERE Солдат.КодС = Экипировка.КодС
   AND Оружие.КодO = Экипировка.КодO
ORDER BY Солдат.Фамилия

А это суммарно оружие и его количество по всем солдатам
(группировка по оружию):
Код:
SELECT Оружие.Название, Sum(Экипировка.Количество) as ОбщееКоличество
   FROM Солдат, Оружие, Экипировка
   WHERE Солдат.КодС = Экипировка.КодС
      AND Оружие.КодO = Экипировка.КодO
GROUP BY Оружие.КодО, Оружие.Название
ORDER BY Оружие.Название

Последний раз редактировалось Serge_Bliznykov; 28.04.2011 в 14:47.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.04.2011, 18:57   #3
strangegirl
Пользователь
 
Регистрация: 04.11.2010
Сообщений: 19
По умолчанию

Спасибо большое)
strangegirl вне форума Ответить с цитированием
Старый 02.05.2011, 16:25   #4
strangegirl
Пользователь
 
Регистрация: 04.11.2010
Сообщений: 19
По умолчанию

а вот ещё вопрос по той же БД.

Нужно вывести кол-во оружия( т.е. название вида и общее кол-во), чтобы снарядить трёх солдат. Не важно каких.
strangegirl вне форума Ответить с цитированием
Старый 02.05.2011, 19:33   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Нужно вывести кол-во оружия( т.е. название вида и общее кол-во), чтобы снарядить трёх солдат. Не важно каких.
СУБД то какая?

если СУБД позволяет, то можно так:
Код:
SELECT Оружие.Название, Sum(Экипировка.Количество) as ОбщееКоличество
   FROM 
      (select top 3 A.* from Солдат A order by КодС) Солдат,
      Оружие, Экипировка
   WHERE Солдат.КодС = Экипировка.КодС
      AND Оружие.КодO = Экипировка.КодO
GROUP BY Оружие.КодО, Оружие.Название
ORDER BY Оружие.Название
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.05.2011, 19:43   #6
strangegirl
Пользователь
 
Регистрация: 04.11.2010
Сообщений: 19
По умолчанию

позволяет) спасибо)
strangegirl вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить количество строк не делая лишний запрос lacost SQL, базы данных 7 20.01.2011 11:06
Sql Запрос Dxcite БД в Delphi 0 22.05.2010 15:21
Запрос с CASE переделать в запрос с PIVOT (MS SQL Server 2005) Машуля SQL, базы данных 4 06.05.2010 21:09
Создание новых таблиц в MS SQL SERVERE через SQL запрос в Delphi S_Yevgeniy Помощь студентам 1 27.10.2009 06:26
SQL запрос на основе другого SQL запрса... Timoxa БД в Delphi 1 07.01.2007 18:15