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

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

Группировка в таблицах - красивое решение? [D6, dBase, FoxPro]


StenKz ©   (2002-11-21 16:19:00) 

Есть ли красивое решение.

Необходимо групировать и суммировать значения и количество записей в таблице. Типа группировки в отчётах.

Как это сделать красиво без прямого перебора всех записей.


passm   (2002-11-26 09:38:00) [1]

GLUKAS © (25.11.02 16:11)> GROUP BY используется для групировки вычисляемых полей с не вычисляемыми. Небольшое уточнение: Не вычисляемых, а агрегатных. Эквивалентный запрос:
SELECT DISTINCT T1.FIELD1, T1.FIELD2, (T1.FIELD1 + T1.FIELD2) AS T_SUM
FROM TABLE1 AS T1
(Но, на FoxPro он будет работать действительно медленнее.)

BorisUK © (26.11.02 06:14)> Либо так:
SELECT T1.FIELD1, T1.FIELD1 * T2.F_COUNT
FROM (SELECT Q1.FIELD1, COUNT(Q1.FIELD2) AS F_COUNT
FROM TABLE1 AS Q1
GROUP BY Q1.FIELD1) AS T2
INNER JOIN TABLE1 AS T1 ON (T1.FIELD1 = T2.FIELD1)
На Fox"е, насколько мне известно, поддерживается только один вложенный запрос...


GLUKAS   (2002-11-26 08:04:00) [2]

Простите великодушно...
Действительно я изначально не верно понял вопрос.... %)
то neXt: иногда я даже select+count использую для нумерации сортированных записей ...


BorisUK   (2002-11-26 06:14:00) [3]

Немного не так...
Вот так будет можно.
...field1, (select sum(SummField) from table1 t1, table2 t2 where t1.key=t2.key) AllSum, Field3...


Stenkz   (2002-11-26 05:47:00) [4]

А можно ли в операторе sum() ипользовать оператор select.

тоесть select sum (select ...)....


neXt   (2002-11-25 18:49:00) [5]

group by можно, например использовать вместо distinct на Sybase и MS 7.0 это на порядок более быстрая операция


neXt   (2002-11-25 18:47:00) [6]

>GLUKAS © (25.11.02 16:11)
>GROUP BY используется для для групировки вычисляемых полей с не вычисляемыми

это, простите, не совсем верно, - часный случай, group by - мощный инструмент и применим он не только к операциям с вычислимыми полям


Johnmen   (2002-11-25 17:34:00) [7]

>GLUKAS © (25.11.02 16:11)

Где в вопросе прозвучало "объединять таблицы" ?!


GLUKAS   (2002-11-25 16:11:00) [8]

Чтото я не пойму каким образом с помощью GROUP BY объединять таблицы???
GROUP BY используется для для групировки вычисляемых полей с не вычисляемыми
Example:
Select t.pole1,t.pole2,(t.pole1+t.pole2)as Suma
from tabl1 t
Group by t.pole1,t.pole2

И не иначе!!!!!


Johnmen   (2002-11-25 16:04:00) [9]

>StenKz © (25.11.02 15:32)
>Уже воплощаю.

Интересно, что именно ? :)))

А вообще-то, для группировки есть предикат GROUP BY, как было указано AndDem (21.11.02 16:37). Конечно, и с помощью UNION можно решить задачу, но это будет
1. некрасиво
2. самое главное - крайне медленно ! (медленнее во столько раз, сколько запросов объединяется UNION"ом [примерно])


StenKz   (2002-11-25 15:32:00) [10]

Спасибо всем .....
Уже воплощаю.


GLUKAS   (2002-11-21 16:51:00) [11]

Unit объединяет звписи выборок абсолюстно соответствующих по структуре
т.е. не tabl1.pole1,tabl1.pole2,tabl2.pole1...
tabl1.pole1,tabl1.pole2,tabl2.pole1...
tabl1.pole1,tabl1.pole2,tabl2.pole1...

а tabl1.pole1,tabl1.pole2
tabl1.pole1,tabl1.pole2
tabl1.pole1,tabl1.pole2
tabl2.pole1,tabl2.pole2
tabl2.pole1,tabl2.pole2
tabl2.pole1,tabl2.pole2


OlegE   (2002-11-21 16:46:00) [12]

Есть компонент xQuery. Он позволяет делать запросы к DataSet.
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.

http://www.sigmap.com/txquery.htm


StenKz   (2002-11-21 16:38:00) [13]

А можно по подробней как ...UNITom? :)


AndDem   (2002-11-21 16:37:00) [14]

Я, конечно, звиняюсь за вторжение, но когда говорят о группировке, у меня почему-то возникают ассоциации с GROUP BY, а не с UNIT...


GLUKAS   (2002-11-21 16:23:00) [15]

Объединяются таблица UNITом
но вот можно ли посчитать результирующий count незнаю...


Наверх

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