![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Можно ли упростить? [D7, Paradox]
Кирей © (2006-07-24 12:09:00)У меня есть несколько запросов типа:
1 запрос
select distinctdiametr, sum(dlin)
from"dataset.db"
wherepriznak=1
group bydiametr
2 запрос
select distinctdiametr, sum(dlin)
from"dataset.db"
wherepriznak=2
group bydiametr
3 и т.д
далее с сохраняю результаты запросов в таблице и выполняю результирующий запрос, в котором получаю все суммы, таблицы связываю по полю diametr
Mike Kouzmine (2006-07-24 18:17:00) [1]Кирей (24.07.06 16:02) [9] Можно "вьюшки" (текст. файл с запросом) использовать.
Sergey13 (2006-07-24 16:07:00) [2]2 [9] Кирей (24.07.06 16:02)
>Просто хотелось бы знать, можно ли сделать проще, чем сделал я.
Вариант [4] упрощает твои запросы (1 вместо 9). Что ты делаешь дальше никто не знает. Может и можно упростить, может и нет.
Кирей (2006-07-24 16:02:00) [3]Просто хотелось бы знать, можно ли сделать проще, чем сделал я. Может можно использовать результаты выполнения нескольких Query в одном результирующем без сохранения во внешние таблицы, может другие пути.
Sergey13 (2006-07-24 15:52:00) [4]2 [7] Кирей (24.07.06 15:41)
> Пользователь должен увидеть что у него есть в удобном для него виде
Этим и занимаются программисты.
Кирей (2006-07-24 15:41:00) [5]
> Причём тут отражение
Пользователь должен увидетьчто у него есть в удобном для него виде
Johnmen (2006-07-24 14:56:00) [6]Причём тут отражение??????????????
Кирей (2006-07-24 14:52:00) [7]
> А так нельзя?
Нет, в этом случае все равно в dbgride не отразится в нужном виде
Sergey13 (2006-07-24 13:07:00) [8]
select priznak, diametr, sum(dlin)
from "dataset.db"
group by priznak, diametr
А так нельзя?
sniknik (2006-07-24 12:40:00) [9]> а надо примерно так:
в localsql так не получится (имхо, не работаю с ним, было бы что другое...), но зато у тебя получится одна таблица вместо 9-и, можеш финальное обьеденение делать саму с собой.
и лучше не union, лучше изменить групировку, и отработает быстрее и priznak будет нужен при результирующем обьеденении.
Кирей (2006-07-24 12:28:00) [10]
> sniknik
Пробовал union, выдает все в один столбик, а надо примерно так:
диаметр длинна 1 длинна 2 длинна 3 ... (всего 9 шт)
_______________________________________________
15 150 0 10 ...
20 200 25 500 ...
sniknik (2006-07-24 12:17:00) [11]distinct тут не нужен, т.к. group by все одно только одно значение сделает.
обьеденить результаты запросов можно с помощью unuon [all] (F1)
и если таблица дальше также одна, и priznak так и дальше изменяется, то можно просто включить его дополнительно в группировку и обойтись вообще одним запросом.