Вниз
Скачать: CL | DM;

Накопление по разным базам.   Найти похожие ветки 

 
ViktorZ ©   (2006-02-27 14:30) [0]

Скажем получил я результатом запроса некие поля. Пусть их 2. Далее я обращаюсь к другой базе и все тем же запросом получаю еще 2 поля но с другими значениями. Как мне их сложить?
Пример:
1результат:
Номер   Сумма
1             1000
2            2000
3            3000

2 результат
Номер   Сумма
1             3000
2            4000
3            5000

Ответ:
1  4000
2 6000
3 8000


 
Sergey13 ©   (2006-02-27 14:34) [1]

Что в твоем вопросе есть "база"? И какого она типа?


 
ViktorZ ©   (2006-02-27 14:37) [2]

База есть таблички. Обрабатывая их запросом получаем почти тоже самое что  в примере. База парадокс. ДЕЛФИ 7. Блин который раз галочки забываю поставить.


 
Neo Trinitron ©   (2006-02-27 14:43) [3]

На самом деле запрос должен быть один а не два, а между ними надо написать строку UNITED all, кажется.


 
ViktorZ ©   (2006-02-27 14:44) [4]

UNITED all
Скорее Union ALL, но он вроде мне тогда вернет не сумму полей а просто их выведет.


 
Neo Trinitron ©   (2006-02-27 14:44) [5]

Сорри, Union


 
Sergey13 ©   (2006-02-27 14:47) [6]

Идея такова
Select Номер, Sum(Сумма) from
(запрос1
union all
запрос2)
Group By Номер

Но LocalSQL не поддерживает подзапросы. Однако для Парадокса можно сделать QBE файл (ищи в справке) содержащий подзапрос и в головном запросе указать его.

ЗЫ: На практике я этого не делал (т.к. с парадоксом не работаю), так что могу и ошибаться (я много могу 8-).


 
Neo Trinitron ©   (2006-02-27 14:48) [7]

Дык получив нужные записи, можно относится к ним как к таблице и отдельным запросом посчитать нужные суммы

select Sum(G.field2)
from (Select field1, field2
       from Table1
       union all
       Select field1, field2
       from Table2) as G
group by field1

если опять чего не напутал...


 
Neo Trinitron ©   (2006-02-27 14:50) [8]

> Но LocalSQL не поддерживает подзапросы

Мой пример был для Ms Sql, так что звыняйтэ.


 
ViktorZ ©   (2006-02-27 18:51) [9]

Select Номер, Sum(Сумма) from
(запрос1
union all
запрос2)
Group By Номер

Спасибо.Но может просто записать данные полученного запроса в одну таблицу, другого запроса в другую, третьего запроса в третью, а потом сложить не получица?


 
Sergey13 ©   (2006-02-27 18:59) [10]

2 [9] ViktorZ ©   (27.02.06 18:51)
Это называется - использование временных таблиц. Тоже метод - хотя и не бесспорный. Только зачем тогда в разные таблицы писать? Пиши в одну раз структура одинакова - и складывать ничего не придется.


 
ViktorZ ©   (2006-02-27 19:01) [11]

Гы у меня еще идея возникла обсчитать все там 6 скажем. И каждый результат загнать в массив а потом сложить массивы.А по поводу временный таблиц: это такие которые я сам пишу а потом с ними работаю?


 
Sergey13 ©   (2006-02-27 19:10) [12]

2[11] ViktorZ ©   (27.02.06 19:01)
>А по поводу временный таблиц: это такие которые я сам пишу а потом с ними работаю?
А после работы удаляю.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.032 c
3-1141126984
Рафик
2006-02-28 14:43
2006.04.23
MSSQL Distinct по дате


2-1144545460
001
2006-04-09 05:17
2006.04.23
PDOXUSRS.NET


15-1144225435
ocean
2006-04-05 12:23
2006.04.23
Перезагрузить ADSL-модем


2-1144289745
raptor3
2006-04-06 06:15
2006.04.23
Глюк с запросом


15-1143653618
Kolan
2006-03-29 21:33
2006.04.23
Совместимось bpl пакетов Delphi 2006 с Delphi 7.




   Наверх