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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.10.2013, 22:20   #1
Bagir
Пользователь
 
Регистрация: 10.10.2012
Сообщений: 19
По умолчанию Прошу помочь с SQL заросом. Два ответа в разных колонках одного запроса.

Исходная таблица:

Код:
    Numx	IFx	Summx
     1		True	10
     1		True	20
     2		False	15
     2		True	40
     3		False	50
В ответе нужно получить:

Код:
    Numx	SummAllx	SumIFx
     1		30		30
     2		55		40
     3		50		0
Вторая колонка ответа SummAllx это суммы колонки исходной таблицы Summx по группам из Numx. Сделать это просто:

Код:
    SELECT Numx, SUM(Summx) AS SummAllx
    FROM TestTabl
    GROUP BY Numx
В колонке SumIFx тоже итоги, но только те, у кого IFx = True. С этим тоже просто:

Код:
    SELECT Numx, SUM(Summx) AS SumIFx
    FROM TestTabl
    WHERE IFx = True
    GROUP BY Numx
А как сделать это одним запросом, чтобы получить сразу все три колонки? Пробовал объединять два запроса с помощью UNION. Штука полезная, но такой ответ сделать не получается. Посоветуйте хотя бы куда копать.

База данные MS Access, Пишу на VBA под Excel 2003
Bagir вне форума Ответить с цитированием
Старый 30.10.2013, 22:23   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Так ест?
Код:
SELECT Numx, SUM(Summx) AS SummAllx,
    SUM(IIF(IFx = True,Summx,0)) AS SumIFx
  FROM TestTabl
  GROUP BY Numx
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 30.10.2013, 22:34   #3
Bagir
Пользователь
 
Регистрация: 10.10.2012
Сообщений: 19
По умолчанию

Блин, ну я же не раз так пробовал! А сейчас все получилось. Аватар, большое человеческое спасибо! Вероятно я что то все таки напутал, хоть тут и заблудиться негде было.
Ранее почему у меня не получалось использовать в качестве условия в IIF колонку если она не выбрано в SELECT. Не знаю почему, видимо не тем пальцем наживал.

Последний раз редактировалось Bagir; 30.10.2013 в 22:43.
Bagir вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно исправить два запроса на SQL vlados01121992 SQL, базы данных 0 15.10.2012 23:59
Алгоритмы. Не прошу решить. Прошу помочь! pascaluser Паскаль, Turbo Pascal, PascalABC.NET 2 12.10.2012 08:45
Прошу помочь) Егоргий Помощь студентам 3 03.06.2012 20:34
Вывод ответа после WQL запроса DarkZiMAN Помощь студентам 0 02.04.2012 22:30
Поиск ошибки в Python-коде [парсинг запроса и генерация ответа WebSocket] russian-stalker Python 0 03.06.2011 12:34