Текущий архив: 2002.12.12;
Скачать: CL | DM;
Вниз
Группировка в таблицах - красивое решение? Найти похожие ветки
← →
StenKz © (2002-11-21 16:19) [0]Есть ли красивое решение.
Необходимо групировать и суммировать значения и количество записей в таблице. Типа группировки в отчётах.
Как это сделать красиво без прямого перебора всех записей.
← →
GLUKAS © (2002-11-21 16:23) [1]Объединяются таблица UNITом
но вот можно ли посчитать результирующий count незнаю...
← →
AndDem (2002-11-21 16:37) [2]Я, конечно, звиняюсь за вторжение, но когда говорят о группировке, у меня почему-то возникают ассоциации с GROUP BY, а не с UNIT...
← →
StenKz © (2002-11-21 16:38) [3]А можно по подробней как ...UNITom? :)
← →
OlegE © (2002-11-21 16:46) [4]Есть компонент 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
← →
GLUKAS © (2002-11-21 16:51) [5]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
← →
StenKz © (2002-11-25 15:32) [6]Спасибо всем .....
Уже воплощаю.
← →
Johnmen © (2002-11-25 16:04) [7]>StenKz © (25.11.02 15:32)
>Уже воплощаю.
Интересно, что именно ? :)))
А вообще-то, для группировки есть предикат GROUP BY, как было указано AndDem (21.11.02 16:37). Конечно, и с помощью UNION можно решить задачу, но это будет
1. некрасиво
2. самое главное - крайне медленно ! (медленнее во столько раз, сколько запросов объединяется UNION"ом [примерно])
← →
GLUKAS © (2002-11-25 16:11) [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 17:34) [9]>GLUKAS © (25.11.02 16:11)
Где в вопросе прозвучало "объединять таблицы" ?!
← →
neXt © (2002-11-25 18:47) [10]>GLUKAS © (25.11.02 16:11)
>GROUP BY используется для для групировки вычисляемых полей с не вычисляемыми
это, простите, не совсем верно, - часный случай, group by - мощный инструмент и применим он не только к операциям с вычислимыми полям
← →
neXt © (2002-11-25 18:49) [11]group by можно, например использовать вместо distinct на Sybase и MS 7.0 это на порядок более быстрая операция
← →
Stenkz © (2002-11-26 05:47) [12]А можно ли в операторе sum() ипользовать оператор select.
тоесть select sum (select ...)....
← →
BorisUK © (2002-11-26 06:14) [13]Немного не так...
Вот так будет можно.
...field1, (select sum(SummField) from table1 t1, table2 t2 where t1.key=t2.key) AllSum, Field3...
← →
GLUKAS © (2002-11-26 08:04) [14]Простите великодушно...
Действительно я изначально не верно понял вопрос.... %)
то neXt: иногда я даже select+count использую для нумерации сортированных записей ...
← →
passm © (2002-11-26 09:38) [15]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"е, насколько мне известно, поддерживается только один вложенный запрос...
Страницы: 1 вся ветка
Текущий архив: 2002.12.12;
Скачать: CL | DM;
Память: 0.5 MB
Время: 0.018 c