Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

select from TQuery


Demka ©   (2003-07-02 10:58:00) 

Задача: получить два набора данных.
Выполняем 2 селекта:

1. select field1, field2
from table1
where field1=value1

2. select field1, field2
from table1
where field1=value1
group by field1

Первый селект - Query1, второй - Query2.
А нельзя ли написать во втором селекте что-то типа:

2. select field1, field2
from Query1
group by field1


Val   (2003-07-03 12:04:00) [1]

>Demka (02.07.03 10:58)
если используется BDE, то можно, используя local views


Oleg_E   (2003-07-03 10:23:00) [2]

> Demka (03.07.03 10:05)
Можно, используя TxQuery.


DenK_vrtz   (2003-07-03 10:17:00) [3]

Demka (03.07.03 10:05),
если вопрос именно так стоит, то НЕТ!
А как ты, логически, себе это представляешь? :-)


Demka   (2003-07-03 10:05:00) [4]

Господа и дамы!
Давайте проясним ситуацию.
Я НЕ спрашиваю КАК мне получить результат.
Я знаю КАК его получить несколькими разными способами.
Вопрос не в этом.
Вопрос в том можно ли получить его ИМЕННО ТАК.
Не как-то по другому, а именно ТАК.
Мне не нужны СПОСОБЫ решения моей задачи. Я ее УЖЕ решил другим
способом.

Я всего лишь хочу узнать:
select from TQuery - возможно или нет?

************************************
Query1, Query2: TQuery;

Query2.SQL = "select * from Query1"
************************************

Вот и все что я хочу узнать. Всего лишь.


DenK_vrtz   (2003-07-03 09:47:00) [5]

Demka (03.07.03 09:42), а Johnmen © (02.07.03 11:17) абсолютно прав!!! У определенной СУБД, есть разные способы решения проблемы, которые могут не подходить для решения задач в другой СУБД


Oleg_E   (2003-07-03 09:46:00) [6]

Есть такой компанент TxQuery. Он может:

TxQuery component is a TDataSet descendant component that can be used to query one or more TDataSet descendant components using SQL statements. It is implemented in Delphi 100% source code, no DLL required, because it implements its own SQL syntax parser and SQL engine.


Demka   (2003-07-03 09:42:00) [7]

Ну хорошо, хорошо! Был неправ, вспылил.

To Johnmen: А какая разница, какая СУБД? Пусть будет например
Fox. И что?

To NickBat: Содержательно! НУЖНО! Я понимаю, что можно
реализовать все это и другими способами, я просто
спрашиваю можно ли ТАК сделать.

To Rol and Q: Да, согласен, запрос2 лишен смысла. Но это ведь
просто пример. Или вы хотите чтобы я весь запрос
закатал? Там практически то же самое, только полей
больше ;-)

Попробую объяснить по другому.
Есть прога на фоксе. Строится отчет. В нем множество промежуто-
чных итогов.
Скажем есть 3 поля: field1, field2, field3.
Надо все это вывести в отчет, попутно посчитав итоги с группиро-
вкой по field1, по field1 и field2, общую сумму.
Выводится это все в Excel.
1)Сначала делается выборка с группировкой по field1, field2 во
временную таблицу (в курсор если быть точным, хотя это и не
принципиально).

select field1, field2, sum(field3)
from OriginalTable
group by field1, field2
into cursor таблица1

2)Потом из этой временной таблицы делается выборка полей field2 и
field3 с группировкой по field2 опять же во временную таблицу

select field2, sum(field3)
from таблица1
group by field2
into cursor таблица2

из которой в свою очередь выбираем поле field3

select sum(field3)
from таблица2
into cursor таблица3

получая итоговую сумму.

Получаем 3 таблицы:
таблица1 - итоги по field1, field2
таблица2 - итоги по field2
таблица3 - общие итоги

Смысл? Не надо каждый раз дергать исходную таблицу, которая
может оказаться достаточно большой.


Q   (2003-07-02 16:58:00) [8]

зачем во втором запросе GROUP BY field1,
если есть условие WHERE field1 = value
и нет агрегатных ф-ий. т.е. запрос1 = запрос2

вообще, где смысл таких манипуляций?


Serginio   (2003-07-02 15:13:00) [9]

Можно используя MakePermanent cоздавая тем самым не TEMP таблицу (Tquery создает временную таблицу) и обращаться к ней как таблице.


Rol   (2003-07-02 14:12:00) [10]

А мне интересно, field2 - агрегатное поле или запрос №2 - xeim? :)


NickBat   (2003-07-02 13:28:00) [11]

Даже если можно, ЗАЧЕМ?


Johnmen   (2003-07-02 11:17:00) [12]

"Можность" определяется типом СУБД.
Или стесняешься его указать ? :)))


Наверх

Титульная страница Поиск, карта сайта Написать письмо