|
Ошибка при повторном использовании DISTINCT
|
|||
---|---|---|---|
#18+
Имеется запрос к DBF таблицам СУБД FOXPRO в котором необходимо посчитать суммы различных значений. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Текст переведенного запроса рабочий. Проблема возникает при попытки попытки использовать DISTINCT больше одного раза. Если я пишу ... Код: vbnet 1. 2. 3.
... выдается ошибка (DISTINCT is invalid) Не пойму в чем причина. Или я ошибаюсь или это особенность СУБД FOXPRO В любом случае мне нужно посчитать лишь не повторяющиеся значения. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 06:00 |
|
Ошибка при повторном использовании DISTINCT
|
|||
---|---|---|---|
#18+
Это ограничения фокса, в одном запросе он выполняет только один count(distinct ...) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 07:12 |
|
Ошибка при повторном использовании DISTINCT
|
|||
---|---|---|---|
#18+
Подскажите тогда наиболее оптимальную стратегию как получит в одной таблице несколько COUNT(DISTINCT...). Ситуация такая. Пишется (дописывается) приложение на DELPHI 7. Обращение к DBF(фоксовским) таблицам осуществляется через ADO компоненты. (TADOQuery) через поставщик OLE DB Provider for Visual FoxPro. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 07:39 |
|
Ошибка при повторном использовании DISTINCT
|
|||
---|---|---|---|
#18+
Пока видится получить нужные значения в разных запросах а затем их соединить. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 07:40 |
|
Ошибка при повторном использовании DISTINCT
|
|||
---|---|---|---|
#18+
Или получить данные без группировки а затем навигационным способом бегать по таблице и считать что нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 07:42 |
|
Ошибка при повторном использовании DISTINCT
|
|||
---|---|---|---|
#18+
IgnatovfПока видится получить нужные значения в разных запросах а затем их соединить. Этот способ самый простой и надежный. IgnatovfИли получить данные без группировки а затем навигационным способом бегать по таблице и считать что нужно. Возможно так будет быстрее, но тут все зависит от реализации, надо пробовать и мерить время. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 08:20 |
|
Ошибка при повторном использовании DISTINCT
|
|||
---|---|---|---|
#18+
Какие еще способы здесь могут быть? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 08:26 |
|
Ошибка при повторном использовании DISTINCT
|
|||
---|---|---|---|
#18+
IgnatovfКакие еще способы здесь могут быть? На фоксе я бы сначала все исходные данные затянул в курсор, а потом из него делал выборки с группировкой. У ODBC-драйвера возможностей поменьше, не разу с ним не работал. Если он может с курсорами работать, то попробуй. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 08:35 |
|
Ошибка при повторном использовании DISTINCT
|
|||
---|---|---|---|
#18+
Dima T На фоксе я бы сначала все исходные данные затянул в курсор, а потом из него делал выборки с группировкой. У ODBC-драйвера возможностей поменьше, не разу с ним не работал. Если он может с курсорами работать, то попробуй. Чет я торможу что значит "Затянуть в курсор" впрочем как и "курсор" в данном контексте. Пойду искать инфу по теме. Буду благодарен если дадите ссылку или покажите пример. Все равно спасибо за указание направления! ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 08:45 |
|
Ошибка при повторном использовании DISTINCT
|
|||
---|---|---|---|
#18+
В смысле засунуть данные во временную таблицу и оттуда тегать разными запросами COUNT(Distinct)по разным значениям. Тогда как потом их свести в одну таблицу? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 08:52 |
|
Ошибка при повторном использовании DISTINCT
|
|||
---|---|---|---|
#18+
Курсор - временная таблица. Засунуть в одну как-то так: Код: sql 1. 2. 3.
Можно также без курсора сразу из исходных таблиц, но будет гораздо медленнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 10:40 |
|
Ошибка при повторном использовании DISTINCT
|
|||
---|---|---|---|
#18+
Спасибо мысль понятна. Примерно так себе и представлял. Копаюсь с реализацией. В голове и на экране каша. Буду расхлебывать. Надеюсь все получится. Опасаюсь как бы не было переполнений таблица содержит больше 4,7 миллиона записей плюс к ней несколько поменьше join ить надо. Буду делать через курсор так нагляднее и быстрее работать должно. Во общем куча мыслей....... Спасибо за помощь! ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 11:10 |
|
|
start [/forum/topic.php?fid=41&msg=37598406&tid=1583904]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 273ms |
total: | 418ms |
0 / 0 |