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

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

Paradox и вложенные запросы


Страницы:   1 2

alexander_ua ©   (2003-07-29 17:19:00) 

Поддерживает ли Paradox вложенные запросы? А если да, то как пользоваться ORDER BY?


HSolo   (2003-07-30 10:31:00) [1]

Зачем же непременно 2 запроса?

select fname, fprice from table where ...
union
select "Итого", sum(fprice) from table where <то-же-самое>

Возможно, понадобится cast для приведения полей к одному и тому же типу.
Это если Вам НЕПРЕМЕННО нужно ВСЕ в ОДНОМ запросе. Так ли это? Может, есть смысл послушать Dred2k © (29.07.03 18:59) - а может, лучше просто сделать 2 запроса: один - с данными, 2-й - с суммой, переоткрывать при изменении данных. А если Вы просто отчет формируете, то нет ли в Вашем генераторе отчетов возможности вывести сумму (кол-во записей в выборке итд)? По крайней мере, все известные мне генераторы отчетов это умеют.


Mark   (2003-07-29 19:44:00) [2]

Нашел интересную. бух. прогу на сайте http://amigonet.narod.ru.
Бухгалтерского в ней мало, но встроенный язык имеет синтаксис:

select a,max(b) as b,sum(c) as c
from table1
group by a
@@SaveDsToFile c:\q1
select a,max(b) as b,sum(c) as c
from table
group by a
@@AppendDsToFile c:\q1
select *
from "c:\q1"
@@InsertField k:a=ifS(b<5,a,c)


Есть редактор форм как в Delphi. Очень интерестно, но очень сыро.



Dred2k   (2003-07-29 19:00:00) [3]

...
Во временный файл пришем текст запроса суммы, разумеется.


Dred2k   (2003-07-29 18:59:00) [4]

;)
Так это, батенька, два запроса.
А если в каждой строке хочешь одно и то же (общую сумму), то давно внимательно изучил бы приведенный мной пост про VIEW в localSql и написал бы что-то типа:

select sum(...) as SUMMA from ...
Пишем это во временный файл, к примеру - с:\temps\summa.sql

Основной запрос:
select t.Field1, t.Field2, s.SUMMA from table1 t, "c:\temps\summa.sql" s where ...


Пробуй. Думай.


Mike1 Kouzmine1   (2003-07-29 18:55:00) [5]

Аааа...... и подпись главного бухгалтера и генерального директора?


alexander_ua   (2003-07-29 18:53:00) [6]

ok.
таблица типа

название стоимость
ведро 100 у.е.
лопата 200 у.е ( со всевозможными order by и where)

ok.
таблица типа

название стоимость
ведро 100 у.е.
лопата 200 у.е
................
................

Хочу получить эту таблицу (со всевозможными order by и where) и внизу "Общая сумма = ..."


Mike1 Kouzmine1   (2003-07-29 18:50:00) [7]

А ты напечатай структуру данных исходных и что ты хочешь получить в итоге. Что-то я тебя не понимаю.


alexander_ua   (2003-07-29 18:50:00) [8]

беда ж еще в том, что после select ... стоит много всяких where и order by так что еще более желательно сумму и данные получать одним запросом


alexander_ua   (2003-07-29 18:46:00) [9]

>>> Mike1 Kouzmine1
Что значит приделаешь? И к каким разным?
Есть таблица, в которой к примеру 3 поля и 10 записей. Есть желание показать все эти 10 записей и общую сумму по полю №2. Может я чего-то недопонимаю, но пока я с этим не столкнулся, я не видел никаких сложностей...


Mike1 Kouzmine1   (2003-07-29 18:42:00) [10]

Ну уж нет. И рыбку съесть и .........
Только скажи, как ты общую сумму приделаешь к разным данным?


alexander_ua   (2003-07-29 18:41:00) [11]

>>> Mike1 Kouzmine1 (29.07.03 18:36)
а мне нужно извлечь и данные, и сумму

>>> HSolo © (29.07.03 18:39)
спасибо, буду читать


HSolo   (2003-07-29 18:39:00) [12]

Уговорили. Про group by можете (пока!) не читать :)). А про union - придется, если Вы хотите одним запросом взять и данные, и общую сумму.


Mike1 Kouzmine1   (2003-07-29 18:36:00) [13]

Ну так и делай, что пристал.
select sum(X) from t


alexander_ua   (2003-07-29 18:34:00) [14]

Ведь мне нужна сумма не для групп, а общая!


alexander_ua   (2003-07-29 18:32:00) [15]

Но зачем нужен Group By, если я хочу узнать сумму???


HSolo   (2003-07-29 18:21:00) [16]

Читайте LocalSQL help по GROUP BY и UNION


Mike1 Kouzmine1   (2003-07-29 18:21:00) [17]

ты получишь для каждого ф1+ф2 свою сумму.


alexander_ua   (2003-07-29 18:19:00) [18]

Пишу
select field1,field2,sum(field3) from table1
group by field1,field2
и вместо суммы по field3 получаю значение field3 в первой записи...


Dred2k   (2003-07-29 18:07:00) [19]

> alexander_ua (29.07.03 17:57)
> Так, я немножко неправильно поставил вопрос.

По-моему, ты его еще и не ставил. Подробнее надо.

> Следовательно, требуется GROUP BY использовать. Но как?

Это в хелпе есть.

> И для каких полей?

А это смотря от того, что тебе нужно.


Mike1 Kouzmine1   (2003-07-29 18:05:00) [20]

Ты бы почитал книжки то. Группировка по полям не вход. в агр. функ.
напр.
select dat,sum(Den) from t
group by dat


Страницы:   1 2

Наверх

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