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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.11.2010, 18:16   #1
altcore
Пользователь
 
Регистрация: 31.03.2010
Сообщений: 38
По умолчанию Дополнить таблицу промежуточными результирующими строками

Таблица как на картинке. Запрос, формирующий ее, давать смысла нет, наверное.
Задача: нужно добить таблицу строками, в которых будет сумма показателей MES1-MES4 для строк в которых коды SOATO имеют одинаковые 4 первые символа. Полю SOATO присвоить код ABCD000.

altcore вне форума Ответить с цитированием
Старый 25.11.2010, 19:54   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Опять же самое простое - создать темповую таблицу, запихнуть в нее группы строк с одинаковыми SOATO с добавлением к группе итоговой строки...
mihali4 вне форума Ответить с цитированием
Старый 26.11.2010, 18:22   #3
altcore
Пользователь
 
Регистрация: 31.03.2010
Сообщений: 38
По умолчанию

Спасибо за совет, вчера сам дошел(все в одном запросе). Тут правда вариантов больше было бы, если бы я исходную таблицу привел. Ну да ладно...

Вот такой кусочек дописал к основному запросу:

Код:
UNION ALL 	     
SELECT SUBSTRING(SOATO,1,4) + '000', 
	   'РАЙОН' as NAME, 
	   iif (MONTH=:mes, (SELECT SUM(AROGD) FROM SVODS WHERE substring(SOATO,1,4) LIKE substring(ss.SOATO,1,4) AND TIP=0), 0),
	   iif (MONTH=:mes, (SELECT SUM(AROGD) FROM SVODS WHERE substring(SOATO,1,4) LIKE substring(ss.SOATO,1,4) AND TIP=0), 0),
	   iif (MONTH=:mes, (SELECT SUM(SMERT) FROM SVODS WHERE substring(SOATO,1,4) LIKE substring(ss.SOATO,1,4) AND TIP=0), 0),
	   iif (MONTH=:mes, (SELECT SUM(SMER1) FROM SVODS WHERE substring(SOATO,1,4) LIKE substring(ss.SOATO,1,4) AND TIP=0), 0),
	   (SELECT SUM(AROGD) FROM SVODS WHERE substring(SOATO,1,4) LIKE substring(ss.SOATO,1,4) AND TIP=0), 
	   (SELECT SUM(MROGD) FROM SVODS WHERE substring(SOATO,1,4) LIKE substring(ss.SOATO,1,4) AND TIP=0), 
	   (SELECT SUM(SMERT) FROM SVODS WHERE substring(SOATO,1,4) LIKE substring(ss.SOATO,1,4) AND TIP=0), 
	   (SELECT SUM(SMER1) FROM SVODS WHERE substring(SOATO,1,4) LIKE substring(ss.SOATO,1,4) AND TIP=0),
	   '2' FROM SVODS ss
	   WHERE TIP=0 AND YEAR=:god AND SOATO LIKE '%002'
а, ну и полей больше стало, чем в выборке в табличке, т.к. еще считаю с начала года.
altcore вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Произведение с промежуточными результатами sleepex Помощь студентам 1 31.10.2010 12:01
дополнить программу smile) Помощь студентам 2 13.09.2010 21:01
макросом дополнить название Romuald Microsoft Office Excel 2 22.05.2008 17:31
Надо дополнить плз... Droid Общие вопросы Delphi 12 24.04.2008 18:01