|
Многотабличный запрос
|
|||
---|---|---|---|
#18+
Доброе время суток! Подскажите, плз, как мне поступить в такой ситуации: есть 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"'); почему-то не проходит... Что делать? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2002, 23:19 |
|
Многотабличный запрос
|
|||
---|---|---|---|
#18+
А что не проходит? Выдается какая-то ошибка или Вы получаете не то, что нужно? Вам надо получить строку из трех чисел? Тогда Вам следует "Завернуть" свой запрос в хранимую процедру и дописать ее. Процедура нужна, потому, что дельфи не обрабатываю в 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 Составление запросов будет намного естественнее и не будет проблем с добавлением нового изделия. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2002, 10:46 |
|
Многотабличный запрос
|
|||
---|---|---|---|
#18+
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( ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2002, 10:52 |
|
|
start [/forum/topic.php?fid=58&msg=32029917&tid=2120009]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
33ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 285ms |
total: | 414ms |
0 / 0 |