|
SQL Запрос
|
|||
---|---|---|---|
#18+
Уважаемые пользователи, подскажите как оптимальнее составить такой запрос: Имеем таблицу (одну) в ней есть 3 поля: c_namec_type n_kolvoКоля груша 5 Коля яблоко 2Аня яблоко 3 Аня мандарины 1Коля вишня 6Коля груша 4Сергей абрикос 2 Задача: создать агрегированную и сгруппированную таблицу вида: c_namen_grusha n_yabloko n_mandarin n_vishnya n_abrikosКоля 9 2060 Аня 0 3100 Сергей 0 0002 Как бы Вы решили эту задачу? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2011, 08:41 |
|
SQL Запрос
|
|||
---|---|---|---|
#18+
Тебе потом куда эту таблицу? Если в эксель, то лучше там поразбирайся со сводными таблицами. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2011, 08:51 |
|
SQL Запрос
|
|||
---|---|---|---|
#18+
А непременно это сделать запросом ? А обычным способом (SET KEY, SET FILTER и пр.) низзя ? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2011, 10:40 |
|
SQL Запрос
|
|||
---|---|---|---|
#18+
Telum, Для этих целей есть программа кросс-табуляции VFPXTAB.PRG (или GENXTAB.PGR в старых версиях FoxPro). Зачем ломать голову на запросом, если есть готовый инструмент? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2011, 14:16 |
|
SQL Запрос
|
|||
---|---|---|---|
#18+
Dima TТебе потом куда эту таблицу? Если в эксель, то лучше там поразбирайся со сводными таблицами. Нет, Excel не подойдет, т.к. это начальный этап консолидации, дальше расчеты и потом самописный вывод в HTML. reware А непременно это сделать запросом ? А обычным способом (SET KEY, SET FILTER и пр.) низзя ? Нет, так уже и реализовано, я ищу способы оптимизации. Sea_Cat Telum, Для этих целей есть программа кросс-табуляции VFPXTAB.PRG (или GENXTAB.PGR в старых версиях FoxPro). Зачем ломать голову на запросом, если есть готовый инструмент? Спасибо за напоминание данного инструмента, но я не думаю, что его стоит применять в таком "пустяшном" случаи. На данный момент мое решение такое: 1. Создаем Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2011, 18:44 |
|
SQL Запрос
|
|||
---|---|---|---|
#18+
Вообще-то, можно просто "расковырять" программу VFPXTAB.PRG (GENXTAB.PGR). В смысле, посмотреть ее код через Код: plaintext
Но если хочется именно через запросы, то необходимо конструировать запрос примерно такого вида Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
Использовать конструкцию IIF(...,"значение", 0) - нельзя, поскольку размерность поля вычисляется по первой попавшейся записи ДО собственно выполнения выборки. И если для первой попавшейся записи будет вычислено значение 0, то итоговой размерности может и не хватить, чтобы вписать результат. Впрочем, если у Вас VFP9, то можно использовать CAST(), чтобы явно указать размерность. Примерно так IIF(...,"значение", CAST(0 as N(10))) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2011, 20:01 |
|
SQL Запрос
|
|||
---|---|---|---|
#18+
Я бы все-таки использовал VFPXTAB.PRG (GENXTAB.PRG). Можно и просто как процедуру (все параметры достаточно внятно описаны). Можно и мастер запустить и посмотреть, как формируется запрос - затем действовать по аналогии. Просто готовый код уже учитывает многие нюансы, которые вы будете постигать заново... Раз Cross-Tab Wizard никуда не делся из Фокса до сих пор - значит он кому-то нужен и устраивает. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2011, 20:21 |
|
SQL Запрос
|
|||
---|---|---|---|
#18+
Если кроме создания еще и скорость важна, то примерно так можно попробовать Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Думаю принцип понятен, сам не запускал - возможно чего напутал по мелочи. Не заработает - пиши подправлю. и в catch надо бы проверку ошибок дописать. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2011, 13:52 |
|
SQL Запрос
|
|||
---|---|---|---|
#18+
Dima TЕсли кроме создания еще и скорость важна, то примерно так можно попробовать Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Думаю принцип понятен, сам не запускал - возможно чего напутал по мелочи. Не заработает - пиши подправлю. и в catch надо бы проверку ошибок дописать. Спасибо за ответ, однако мне больше "подуше" вариант ВладимираМ. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2011, 19:37 |
|
SQL Запрос
|
|||
---|---|---|---|
#18+
доброго вечера извините,мож надо было в факе спросить,но не нашел там подходящей темы скажите пожалуйста,зависит ли компонент RXQuery от BDE или нет? плиз ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2011, 19:47 |
|
SQL Запрос
|
|||
---|---|---|---|
#18+
Владимир Збудовскийдоброго вечера извините,мож надо было в факе спросить,но не нашел там подходящей темы скажите пожалуйста,зависит ли компонент RXQuery от BDE или нет? плизВ фоксе нет понятий "компонент", "RXQuery" и "BDE". Обратитесь в профильный форум. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2011, 08:55 |
|
|
start [/forum/search_topic.php?author=smtp+server&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
get settings: |
10ms |
get forum list: |
15ms |
get settings: |
10ms |
get forum list: |
14ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 3698ms |
total: | 3914ms |
0 / 0 |