![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Paradox и вложенные запросы
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