Гость
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Многотабличный запрос / 3 сообщений из 3, страница 1 из 1
11.05.2002, 23:19
    #32029898
Voldemarus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Многотабличный запрос
Доброе время суток!
Подскажите, плз, как мне поступить в такой ситуации:
есть N однотипных таблиц, каждой числовые поля F1, F2, F3.
Как мне сделать запрос, чтобы в результате получились 3 суммы каждого поля одельно из всех элементов всех таблиц?
Такие конструкции
code:
Query1.SQL.Add('SELECT SUM(F1)F1, SUM(F2)F2, SUM(F3)F3 FROM "table1,table2,table3"');

и

Query1.SQL.Add('SELECT SUM(F1)F1, SUM(F2)F2, SUM(F3)F3 FROM "table1"');
Query1.SQL.Add('UNION');
Query1.SQL.Add('SELECT SUM(F1)F1, SUM(F2)F2, SUM(F3)F3 FROM "table2"');
Query1.SQL.Add('UNION');
Query1.SQL.Add('SELECT SUM(F1)F1, SUM(F2)F2, SUM(F3)F3 FROM "table3"');




почему-то не проходит... Что делать?
...
Рейтинг: 0 / 0
12.05.2002, 10:46
    #32029916
Cat2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Многотабличный запрос
А что не проходит? Выдается какая-то ошибка или Вы получаете не то, что нужно?
Вам надо получить строку из трех чисел?
Тогда Вам следует "Завернуть" свой запрос в хранимую процедру и дописать ее. Процедура нужна, потому, что дельфи не обрабатываю в Query запросы из нескольких операторов.

Текст процедуры.

SELECT SUM(F1)F1, SUM(F2)F2, SUM(F3)F3 INTO #Temp FROM "table1"
UNION
SELECT SUM(F1)F1, SUM(F2)F2, SUM(F3)F3 FROM "table2"
UNION
SELECT SUM(F1)F1, SUM(F2)F2, SUM(F3)F3 FROM "table3"

SELECT SUM(F1)F1, SUM(F2)F2, SUM(F3)F3 FROM #Temp

Задумайтесь над вопросом - а нужно ли иметь столько однотипных таблиц?
Допустим, в первой таблице содержатся сведения об изделии А, в втором - Б и т.д.

Тогда достаточно иметь одни таблицу

product char(1),
f1 int,f2 int,f3 int

Составление запросов будет намного естественнее и не будет проблем с добавлением нового изделия.
...
Рейтинг: 0 / 0
12.05.2002, 10:52
    #32029917
Alto
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Многотабличный запрос
Select
Sum(t1.f1 + t2.f1 + t3.f1) As F1,
Sum(t1.f2 + t2.f2 + t3.f2) As F2,
Sum(t1.f3 + t2.f3 + t3.f3) As F3
From table1 t1, table2 t2, table3 t3
Where "связь таблиц"
Group by
Sum(t1.f1 + t2.f1 + t3.f1),
Sum(t1.f2 + t2.f2 + t3.f2),
Sum(t1.f3 + t2.f3 + t3.f3)

кажется так...
есть базы данных не поддерживающие union 8(
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Многотабличный запрос / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]