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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2011, 13:20   #1
stck
Пользователь
 
Аватар для stck
 
Регистрация: 14.06.2010
Сообщений: 84
Вопрос Совместить 2 запроса

Доброго утра) Подскажите, пожалуйста как для исходной таблицы

Совместить 2 запроса :
Код:
SELECT Бензин.НазБенз, Бензин.Литраж
FROM Бензин
WHERE Бензин.Литраж = (select Max(Бензин.Литраж) from Бензин)
и
Код:
SELECT Бензин.НазБенз, Sum(Бензин.Литраж) AS [Sum-Литраж]
FROM Бензин
GROUP BY Бензин.НазБенз;
В Один?
stck вне форума Ответить с цитированием
Старый 17.05.2011, 14:00   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,527
По умолчанию

соеденить добавив новые строки? добавив новые колонки?
Код:
select ....
union all
select ....
такое ?
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 17.05.2011 в 14:04.
evg_m вне форума Ответить с цитированием
Старый 17.05.2011, 14:03   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

совместить то можно.
вопрос, что Вы получите в результате этого "совмещенного" запроса?!

1-й запрос возвращает название и литраж бензина с максимальным значением литража (т.е. какого бензина больше в разовой записи)

2-й запрос выводит название бензина и суммарную величину литражей по данному названию.

пусть есть:
A-80 10 л
A-92 12 л
A-95 20 л
A-92 18 л
A-92 10 л
A-80 5 л

1- запрос выдаст
A-95 20 л

2-й запрос выдаст
A-80 15 л
A-92 40 л
A-95 20 л


что должен выдать "совмещённый запрос" ?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.05.2011, 18:27   #4
stck
Пользователь
 
Аватар для stck
 
Регистрация: 14.06.2010
Сообщений: 84
По умолчанию

первый запрос выискивает максимум значения
второй запрос выискивает значения с одинаковым полем и суммирует их НазБензин
Но вот мне надо уложиться в эти два действиях в один запрос, т.е. Проуммировать литраж с одинаковым значениями в НазБензин и найти в каком из полей находится максимум и вывести его литраж вместе с названием.)
stck вне форума Ответить с цитированием
Старый 17.05.2011, 20:01   #5
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

А почему нельзя так:
Цитата:
SELECT Бензин.НазБенз, Sum(Бензин.Литраж) AS AS [Sum_Литраж], Max(Бензин.Литраж) AS [Max_Литраж]
FROM Бензин
GROUP BY Бензин.НазБенз
ReportCube вне форума Ответить с цитированием
Старый 17.05.2011, 20:18   #6
stck
Пользователь
 
Аватар для stck
 
Регистрация: 14.06.2010
Сообщений: 84
По умолчанию

Цитата:
Сообщение от ReportCube Посмотреть сообщение
А почему нельзя так:
Эт не совсем то что надо. Вот смотри, просуммировав Наименования бензина найти максимальный из них, а не из существующих значений для каждого из типов. А так учту спасибо
stck вне форума Ответить с цитированием
Старый 18.05.2011, 00:22   #7
stck
Пользователь
 
Аватар для stck
 
Регистрация: 14.06.2010
Сообщений: 84
По умолчанию

Если я выполняю запрос
Код:
SELECT Бензин.НазБенз, MAX(Количество)
FROM (SELECT Бензин.НазБенз, Sum(Бензин.Литраж) AS Количество
FROM Бензин
Group BY Бензин.НазБенз
)
Group BY Бензин.НазБенз
То он выводит тоже самое что и в первом запросе, но если из него убрать из первого вызова НазБенз то все работает как надо, то есть выводится максимум из сумм по категориям только вот как вывести имя категории, ведь именно оно и необходимо?!?
stck вне форума Ответить с цитированием
Старый 18.05.2011, 09:45   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

я для чего писал пример с конкретными марками бензина и циферками литража?!
чтобы Вы написали конкретно, что из подобной информации должен вернуть новый запрос!...

Ладно, попробуйте так (если я правильно понял):
Код:
SELECT TOP 1 Бензин.НазБенз, Sum(Бензин.Литраж) AS Количество
   FROM Бензин
   Group BY Бензин.НазБенз
   order by 2 desc
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.05.2011, 09:59   #9
Sparkman
220400
Форумчанин
 
Аватар для Sparkman
 
Регистрация: 21.05.2010
Сообщений: 726
По умолчанию

так может быть?
Код:
SELECT t1.НазБенз,
       t1.Литраж,
       (SELECT SUM (t2.Литраж)
          FROM Бензин t2
         WHERE t1.НазБенз = t2.НазБенз) as [Sum-Литраж]
FROM Бензин t1
WHERE t1.Литраж = (select Max(t3.Литраж) from Бензин t3);
пс: ничего не понял из первого поста..
Cерьёзной помощи не ждите - помогаю в перерывах на "перекур".
Не существует ничего невозможного для человека, который не собирается ничего делать сам.
Не учите человека, если вы не его учитель.
Sparkman вне форума Ответить с цитированием
Старый 18.05.2011, 10:31   #10
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

вообще-то неплохо бы еще озвучить сервак и его версию
а то, например, в оракле вполне себе можно все сделать одним заросом с использованием "групп бай роллап"
soleil@mmc вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Совместить Firebird с Windows 7 Stilet Софт 19 17.01.2015 21:32
совместить 2 макроса Kraimon Microsoft Office Excel 2 13.02.2011 17:16
Совместить с++ и delphi Яр|/||< (^_^) Свободное общение 20 25.03.2010 13:32
как совместить C++ и Visual C++ Paul_AG Visual C++ 2 13.04.2009 19:47
Windows XP совместить с 98? Pavluha Windows 3 20.11.2008 15:01