powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / VFP 9
99 сообщений из 99, показаны все 4 страниц
VFP 9
    #38094547
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет! есть проблемка имеется 2 таблицы (DO3H50, d5171212) мне необходимо сравнить столбцы Т1, Т2, Т3 из первой таблицы и Т1, Т2 второй таблицы + к этому необходимо суммировать данные из 2-х столбцов(KOL_SHT и KOLMN) разных таблиц (упомянутых ранее) все данные должны выводиться в отдельной таблице , а суммирование тех колонок выводиться в отдельной колонке с названием KOL_SHT + KOLMN
...
Рейтинг: 0 / 0
VFP 9
    #38094574
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что означает "VFP 9" в заголовке?
...
Рейтинг: 0 / 0
VFP 9
    #38094576
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex 0163Всем привет! есть проблемка имеется 2 таблицы (DO3H50, d5171212) мне необходимо сравнить столбцы Т1, Т2, Т3 из первой таблицы и Т1, Т2 второй таблицы + к этому необходимо суммировать данные из 2-х столбцов(KOL_SHT и KOLMN) разных таблиц (упомянутых ранее) все данные должны выводиться в отдельной таблице , а суммирование тех колонок выводиться в отдельной колонке с названием KOL_SHT + KOLMN но при этом эти столбцы должны быть еще и отдельно друг от друга перед колонкой в которой они суммируются
...
Рейтинг: 0 / 0
VFP 9
    #38094580
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Visual FoxPro

Модератор: Тема перенесена из форума "MySQL".
...
Рейтинг: 0 / 0
VFP 9
    #38094582
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
суть в том что ведется написание SQL запросов
...
Рейтинг: 0 / 0
VFP 9
    #38094674
Jonny540
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex 0163необходимо сравнить столбцы Т1, Т2, Т3 из первой таблицы и Т1, Т2 второй таблицыМы должны догадываться, как именно сравнить?
Alex 0163c названием KOL_SHT + KOLMNНе прокатит, недопустимое имя
...
Рейтинг: 0 / 0
VFP 9
    #38094722
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну сравнение идет рядом просто столбцы и все тут гемора нет! вот с сумой парюсь чуток
...
Рейтинг: 0 / 0
VFP 9
    #38094763
Jonny540
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex 0163ну сравнение идет рядом просто столбцы и все тут гемора нет! вот с сумой парюсь чутокНе парься:
Код: plsql
1.
Select .... DO3H50.KOL_SHT + d5171212.KOLMN as NewField From DO3H50,d5171212 ....
...
Рейтинг: 0 / 0
VFP 9
    #38094824
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Jonny540Alex 0163ну сравнение идет рядом просто столбцы и все тут гемора нет! вот с сумой парюсь чутокНе парься:
Код: plsql
1.
Select .... DO3H50.KOL_SHT + d5171212.KOLMN as NewField From DO3H50,d5171212 ....


чет не пошло ошибку пишет и все
...
Рейтинг: 0 / 0
VFP 9
    #38094831
Jonny540
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex 0163,

А почему не написал код ошибки и полностью селект? Телепат что ли?
...
Рейтинг: 0 / 0
VFP 9
    #38094837
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Jonny540,
Пишет что не может рассчитать так как файл слишком большой! у Меня отдна таблица весит 30 метров
...
Рейтинг: 0 / 0
VFP 9
    #38094852
Jonny540
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex 0163

Такая выборка проходит?
Код: plsql
1.
Select .... DO3H50.KOL_SHT, d517212.KOLMN, 0.00 as NewField From DO3H50,d5171212 ....
...
Рейтинг: 0 / 0
VFP 9
    #38094865
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Jonny540,
суть получается в том что если не ставить условия отбора оно даже таблицу не может вывести целиком так как там более 5 тыщ строк. а мне + к суммированию нужно еще что бы все выводило
...
Рейтинг: 0 / 0
VFP 9
    #38094872
Jonny540
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex 0163,

ВладимирМНапомню, что FoxPro ограничивается размером таблицы в 2ГБ или количеством записей в 1 миллиард (1 и 9 нулей). Смотря что раньше кончится.
...
Рейтинг: 0 / 0
VFP 9
    #38094873
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Jonny540,
так о че он мне такой бред пишет я не втираю чет!
...
Рейтинг: 0 / 0
VFP 9
    #38094887
Jonny540
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex 0163,

Ну так полностью свой селект можешь показать, или гадать будем?
...
Рейтинг: 0 / 0
VFP 9
    #38094929
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Jonny540,
select d5171212.KC, d5171212.OIS, d1571212.NO, d1571212.KOL_SHT, DO3H50.Cpl, DO3H50.KOLMN from d1571212, DO3H50;
обычный но он даже не выводит мне ни че на 6 % пишет много сильно
...
Рейтинг: 0 / 0
VFP 9
    #38095203
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex 0163Jonny540,
select d5171212.KC, d5171212.OIS, d1571212.NO, d1571212.KOL_SHT, DO3H50.Cpl, DO3H50.KOLMN from d1571212, DO3H50;
обычный но он даже не выводит мне ни че на 6 % пишет много сильно
да там еще нужно суммировать через Group By
...
Рейтинг: 0 / 0
VFP 9
    #38095246
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex 0163,
точнее с использованием этого запроса
...
Рейтинг: 0 / 0
VFP 9
    #38095261
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex 0163Jonny540,
select d5171212.KC, d5171212.OIS, d1571212.NO, d1571212.KOL_SHT, DO3H50.Cpl, DO3H50.KOLMN from d1571212, DO3H50;
обычный но он даже не выводит мне ни че на 6 % пишет много сильно

Это что, полный селект?
...
Рейтинг: 0 / 0
VFP 9
    #38095273
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorNG,

ну вот даже это не хочет делать пишет много данных! если не ставить отбор по критериям вообще ни че не выходит
...
Рейтинг: 0 / 0
VFP 9
    #38095283
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex 0163Alex 0163Jonny540,
select d5171212.KC, d5171212.OIS, d1571212.NO, d1571212.KOL_SHT, DO3H50.Cpl, DO3H50.KOLMN from d1571212, DO3H50;
обычный но он даже не выводит мне ни че на 6 % пишет много сильно
да там еще нужно суммировать через Group By

А не смущает в конце селекта двоеточие?
...
Рейтинг: 0 / 0
VFP 9
    #38095294
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex 0163если не ставить отбор по критериям вообще ни че не выходитВот именно!. Критерии таки надо ставить. А то сделали декартово произведение из таблиц и нарвались на уже указанные ограничения по объемам. Вам зачем результат в 2 гига или миллиард записей?
...
Рейтинг: 0 / 0
VFP 9
    #38095716
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Sizov,
Внедрение готовой продукции на производство
...
Рейтинг: 0 / 0
VFP 9
    #38095797
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex 0163Sergey Sizov,
Внедрение готовой продукции на производствоНу и что? Что это меняет? И каким боком это к правильности написания запроса? Это отменяет необходимость отбирать только нужные записи, а не всю возможную кучу?
...
Рейтинг: 0 / 0
VFP 9
    #38095825
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Sizov,
Суть в том что необходимо подсчитать сумму между 2-мя столбцами разных таблиц! например у меня 28500 строк в одной таблице а вторую вообще молчу! так если знаете подскажите как сделать это !
...
Рейтинг: 0 / 0
VFP 9
    #38095836
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex 0163Всем привет! есть проблемка имеется 2 таблицы (DO3H50, d5171212) мне необходимо сравнить столбцы Т1, Т2, Т3 из первой таблицы и Т1, Т2 второй таблицы + к этому необходимо суммировать данные из 2-х столбцов(KOL_SHT и KOLMN) разных таблиц (упомянутых ранее) все данные должны выводиться в отдельной таблице , а суммирование тех колонок выводиться в отдельной колонке с названием KOL_SHT + KOLMN
По пунктам

Alex 0163необходимо сравнить столбцы Т1, Т2, Т3 из первой таблицы и Т1, Т2 второй таблицы
Что означает эта фраза? Каким образом предполагается сравнивать? Чего с чем?

Кроме того, вот у Вас 30 тысяч записей в первой таблице. С какими именно записями второй таблицы Вы хотите осуществить это сравнение? Со всеми сразу? Каким образом?
...
Рейтинг: 0 / 0
VFP 9
    #38095954
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМ,

необходимо сопоставить столбцы поочередно Т1 и Т1 с разных таблиц и так далее . в конце 2 столбца которые необходимо сравнить но сначала они показаны а затем столбец который уже суммировал их. но в запросах должна фигурировать команда Group By. вот таккая вот ситуация меня больше всего напрегает то что мне не дает даже выполнить программу так как пишет сильно много весит!
...
Рейтинг: 0 / 0
VFP 9
    #38095986
Jonny540
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex 0163ВладимирМ,

необходимо сопоставить столбцы поочередно Т1 и Т1 с разных таблиц и так далее . в конце 2 столбца которые необходимо сравнить но сначала они показаны а затем столбец который уже суммировал их. но в запросах должна фигурировать команда Group By. вот таккая вот ситуация меня больше всего напрегает то что мне не дает даже выполнить программу так как пишет сильно много весит!Да вы можете, наконец, объяснить не своими словами, а как это написано в задании?
...
Рейтинг: 0 / 0
VFP 9
    #38096141
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Jonny540,
задания как такового нет! все словесно сказано было! так как задание ни то дали
...
Рейтинг: 0 / 0
VFP 9
    #38096215
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex 0163Sergey Sizov,
Суть в том что необходимо подсчитать сумму между Что такое "сумма между"? Сумму двух столбцов езе как-то могу представить, сумму между - никак.2-мя столбцами разных таблиц! например у меня 28500 строк в одной таблице а вторую вообще молчу!И Вы своим запросом делаете ВСЕ! комбинации сочетания записей этих таблиц. Умножте количества записей в таблицах друг на друг. А они именно все нужны? Или таки только такие, которые соответствуют каким-то условиям? так если знаете подскажите как сделать это !Что ЭТО? То, что Вы сейчас пока пытаетесь делать - абсурд. Мы так еще и не получили внятного описания задачи.
Приведите хотябы по две-три записи из каждой таблицы и на их основе покажите результат, который хочется видеть.
...
Рейтинг: 0 / 0
VFP 9
    #38096362
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex 0163ВладимирМ,

необходимо сопоставить столбцы поочередно Т1 и Т1 с разных таблиц и так далее . в конце 2 столбца которые необходимо сравнить но сначала они показаны а затем столбец который уже суммировал их. но в запросах должна фигурировать команда Group By. вот таккая вот ситуация меня больше всего напрегает то что мне не дает даже выполнить программу так как пишет сильно много весит!
Извините, но из вашего объяснения ничего не понятно. Приведите пример. Ну, как-то так

Таблица 1
Т1Т2Т3123456

Таблица 2
Т1Т2Т3456789

И вот что означает "сравнить"? Что я должен сделать вот с этими записями и что должен получить в результате? Пока без суммирования. Только сам факт сравнения.
...
Рейтинг: 0 / 0
VFP 9
    #38096403
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМ,

вот должно быть как то так


столбец из 1 табл столбец из 2 табл подсчет 2х предыдущих
для суммирования для суммирования столбцов и вывод в данный
T1 T1 T2 T2 12 10 22
1 2 5 78 15 15 30
2 5 7 54 17 18 35
3 4 8 67 21 11 32

Т1 и Т1 это столбцы из разных таблиц так же как и Т2 и Т2!
...
Рейтинг: 0 / 0
VFP 9
    #38096409
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex 0163,
блин все в кучу
вот должно быть как то так


......................столбец из 1 табл....столбец из 2 табл........подсчет 2х предыдущих
....................для суммирования.....для суммирования.......столбцов и вывод в данный
T1.T1.T2.T2.............12.........................10...................................22
1...2...5..78.............15.........................15...................................30
2...5...7..54.............17.........................18...................................35
3...4...8..67.............21.........................11...................................32
.
Т1 и Т1 это столбцы из разных таблиц так же как и Т2 и Т2!
...
Рейтинг: 0 / 0
VFP 9
    #38096451
Jonny540
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex 0163,

1. Т.е. структура таблиц одинакова, и нужно сложить столбцы попарно (1+1, 2+2, ... ,n+n)?
2. Есть ли еще условия при сложении?
3. А если количество записей если разное, тогда как ?
...
Рейтинг: 0 / 0
VFP 9
    #38096476
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Jonny540,
нет Т1 и Т1 находятся рядом друг с другом как и Т2 и Т2! а вот два столбца которые должны слаживаться (именуем их Р1 и Р1) они сначала выводятся а в следующем столбце уже выводится их сумма. а с тем что если не одинаковое количество строк не должно ни че делать просто остается значение и все а поле с суммой остается пустым. вот примерно так "если все сложить" мне объясняли.
...
Рейтинг: 0 / 0
VFP 9
    #38096587
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да подождите Вы с суммированием! Основной вопрос, ответ на который от Вас все и хотят получить, какая запись первой таблицы должны соответствовать какой записи второй.

Если Взять за образец приведенный мной вариант содержимого, правильно ли я понимаю, что в итоговой таблице у Вас записи двух исходных таблиц сопоставляются по их физическим номерам?

Исходные таблицы

Строка Таб1.Т1 Таб1.Т2112245

Строка Таб2.Т1 Таб2.Т2145267

Результат сопоставления БЕЗ суммирования

Строка Таб1.Т1 Таб1.Т2 Таб2.Т1 Таб2.Т21124524567


PS: Таблицы в теме оформляются через обрамление тегом "CSV" (кнопка на верху темы). Элементы отделяются друг от друга запятыми. А под темой есть кнопка "Предварительный просмотр", чтобы проверить, что получилось при форматировании
...
Рейтинг: 0 / 0
VFP 9
    #38113381
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМ,
Да все именно так как вы и описали.
...
Рейтинг: 0 / 0
VFP 9
    #38114825
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Каникулы закончились, задание осталось!
...
Рейтинг: 0 / 0
VFP 9
    #38114832
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Redrik,
Нееее сессия была да и ноут умер
...
Рейтинг: 0 / 0
VFP 9
    #38115128
Jonny540
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex 0163Redrik,
Нееее сессия была да и ноут умерНадеюсь, сессия была успешная и поминки по ноуту уже справили?
Тогда поехали дальше:
ВладимирМ,
Да все именно так как вы и описали. Теперь рассказывай о суммировании на основе примера ВладимираМ.
...
Рейтинг: 0 / 0
VFP 9
    #38115306
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Jonny540,
да хоронили ноут порвали 3 баяна

ну вот пирмер. Есть 2 таблицы:

Таблица №1
Строка Т1 Т2 Т312114132101323567

Таблица 2
Строка Т1 Т2 Т311210325121931183

Необходимо сделать 3 таблицу что бы в ней были обьедннены 2 таблицы)
Должно получиться примерно так:
строка Т1Т1 Т2Т2 Т3+Т3=...121121410Т3+Т3= 1621051312Т3+Т3=21351618 Т3+Т3=10
таким вот способом
...
Рейтинг: 0 / 0
VFP 9
    #38115386
pioner-v
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex 0163...
Необходимо сделать 3 таблицу что бы в ней были обьедннены 2 таблицы)
Должно получиться примерно так:
строка Т1Т1 Т2Т2 Т3+Т3=...121121410Т3+Т3= 1621051312Т3+Т3=21351618 Т3+Т3=10
таким вот способом

Пусть:
1) tablica1 -это имя 1-ой таблицы
2) tablica2 -это имя 2-ой таблицы
3) stroka, t1, t2, t3 -это имена полей в таблицах(они по условию одинаково именуются)
4) tablica3 -это имя результирующей таблицы

Тогда:
SELECT a.t1 as p1,b.t1 as p2,a.t2 as p3,b.t2 as p4,a.t3+b.t3 as sum1 FROM tablica1 a, tablica2 b WHERE a.stroka=b.stroka INTO TABLE tablica3
...
Рейтинг: 0 / 0
VFP 9
    #38115530
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pioner-v,

Объясни мне плиз вот это-a.t1 as p1,b.t1
...
Рейтинг: 0 / 0
VFP 9
    #38115580
Reese
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex 0163 Объясни мне плиз вот это-a.t1 as p1,b.t1
Выбрать колонку t1 из таблицы a и присвоить ей имя p1, выбрать колонку t1 из таблицы b
...
Рейтинг: 0 / 0
VFP 9
    #38115587
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot Alex 0163]pioner-v,

не пошло создало таблицу ри входе в которую выбираешь какую из 2-х таблиц нужно открыть и все
...
Рейтинг: 0 / 0
VFP 9
    #38115653
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot Alex 0163]Alex 0163pioner-v,

не пошло создало пустую таблицу
...
Рейтинг: 0 / 0
VFP 9
    #38115867
pioner-v
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex 0163pioner-v,

Объясни мне плиз вот это-a.t1 as p1,b.t1

Когда в выборке из двух и более таблиц встречаются поля с одинаковыми
именами, то для их идентификации в выходном наборе можно присвоить новые имена
таким образом, чтобы они отличались друг от друга и не совпадали ни с одним именем
других полей в результате.
Чтобы отличить t1 из tablica1 от t1 из tablica2 в выходном наборе, я присвоил им "другие" имена.
---------------------------------
А результирующая выборка получилась "пустой" не потому, что Select неверен, а
потому, что, видимо,
1) запись в исходных таблицах не имеет поля с именем Stroka
либо
2) а если имеется, то это поле из tablica1 и из tablica2 не имеют совпадающих значений
либо
3) все же структура таблиц не такая, как в приведенном мной выше посте.
----------------------------------
При пользовании нашими подсказками и примерами надо "корректировать" их на то,
что имеется у тебя. Кстати, в записях таблиц присутствует поле, которое я назвал
как "stroka"?
...
Рейтинг: 0 / 0
VFP 9
    #38117581
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ладненько начнем с того почему у меня при выводе колонок из нескольких таблиц пишет сильно большой размер? причем если эти столбцы выводить по отдельности все нормально а если сразу все то не получается, а мне необходимо выводить именно все строки! что можно сделать????
...
Рейтинг: 0 / 0
VFP 9
    #38117607
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex 0163Ладненько начнем с того почему у меня при выводе колонок из нескольких таблиц пишет сильно большой размер? причем если эти столбцы выводить по отдельности все нормально а если сразу все то не получается, а мне необходимо выводить именно все строки! что можно сделать????

Так и пишет: сильно большой?
...
Рейтинг: 0 / 0
VFP 9
    #38117645
Jonny540
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex 0163Ладненько начнем с того почему у меня при выводе колонок из нескольких таблиц пишет сильно большой размер? причем если эти столбцы выводить по отдельности все нормально а если сразу все то не получается, а мне необходимо выводить именно все строки! что можно сделать????Для начала скажите, какой критерий связывает таблицы? Если его нет, селект вам не поможет.
...
Рейтинг: 0 / 0
VFP 9
    #38117753
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Jonny540,

связь 1к1
...
Рейтинг: 0 / 0
VFP 9
    #38118353
Jonny540
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex 0163связь 1к1Тогда вам решение уже дали 13791252
...
Рейтинг: 0 / 0
VFP 9
    #38118442
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Jonny540,

Спасибо! все подровнял и норм работает
...
Рейтинг: 0 / 0
VFP 9
    #38118559
pioner-v
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex 0163Ладненько начнем с того почему у меня при выводе колонок из нескольких таблиц пишет сильно большой размер? причем если эти столбцы выводить по отдельности все нормально а если сразу все то не получается, а мне необходимо выводить именно все строки! что можно сделать????

Пусть tbl1(a1,b1,c1) содержит 2 записи, а tbl2(d1,d2,d3,d4) содержит 5 записей.
Сколько записей вернет, например, запрос типа:
Select a1,c1,d2,d4 from tbl1, tbl2

Подсказка - 10(десять) записей. Вот потому, наверное, а Ваш запрос
возвращает "сильно большой размер"
...
Рейтинг: 0 / 0
VFP 9
    #38118956
Jonny540
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex 0163,

Почитайте на досуге это .
...
Рейтинг: 0 / 0
VFP 9
    #38122018
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Jonny540,

сяб
...
Рейтинг: 0 / 0
VFP 9
    #38124290
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот еще один гемор!

это мой запрос на вывод столбцов из разных таблиц! но мне нужно вывести этот отчет в Exel. Помогите плиз

SELECT D5171212.kc, D5171212.kd,d5171212.ois,MAX(D5171212.no), SUM(D5171212.kol_sht),;
SUM(D03h50.kolmn);
FROM d5171212 ;
LEFT JOIN d03h50 ;
ON D5171212.kc = D03h50.kco AND D5171212.kd= D03h50.dse;
WHERE D5171212.kc = ( 517 );
GROUP BY 1,2,3;
ORDER BY 1,2,3 DESC;
...
Рейтинг: 0 / 0
VFP 9
    #38124297
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex 0163но мне нужно вывести этот отчет в Exel
Код: sql
1.
2.
select ... into cursor qweasd
copy to "asdzxc.xls" type xl5
...
Рейтинг: 0 / 0
VFP 9
    #38124491
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,

не признанная команда! да и подскажи в какое место его вставить!
...
Рейтинг: 0 / 0
VFP 9
    #38124521
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex 0163не признанная команда!какая именно? если речь о селекте, то вместо многоточия надо вставить остальной текст вашего запроса (я-то полагал, что это очевидно)
...
Рейтинг: 0 / 0
VFP 9
    #38124535
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,

непризнанна эта: copy to "asdzxc.xls" type xl5
...
Рейтинг: 0 / 0
VFP 9
    #38124543
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пардрон это мой косяк оно сохраняет файл! но я не понимаю , что с ним дальше делать! объясните плиз. просто такое делаю первый раз
...
Рейтинг: 0 / 0
VFP 9
    #38124553
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex 0163но я не понимаю , что с ним дальше делать!эээ... открыть в экселе? :)
ЗЫ. Если хотите, чтобы эксель прямо из фокса открылся - в поиск по createobject("Excel.Application")
...
Рейтинг: 0 / 0
VFP 9
    #38124562
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex 0163,
аааааааааааааа я ОЛХ! извини за вынос мозга! все прекрасно работает! благодарю))
...
Рейтинг: 0 / 0
VFP 9
    #38124630
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex 0163,

еще раз пардон! подскажи как можно этот отчет выводить так что бы он сразу вылетал тоесть выполнил и показался сразу в Exelе
...
Рейтинг: 0 / 0
VFP 9
    #38124715
Jonny540
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex 0163как можно этот отчет выводить так что бы он сразу вылетал то есть выполнил и показался сразу в Exelе
Это разве не подсказка?
tanglirЕсли хотите, чтобы эксель прямо из фокса открылся - в поиск по createobject("Excel.Application")
...
Рейтинг: 0 / 0
VFP 9
    #38129305
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Снова всем привет! есть такой вот код:

SELECT sDetail.cntdetfakt,sDetail.kd FROM ;
sDetail;
INNER JOIN F012710A;
ON sDetail.kd=F012710A.kd ;
WHERE sDetail.no=10;
GROUP BY sDetail.cntdetfakt,sDetail.kd;
INTO CURSOR q

SELECT sDetail.cntdetfakt,sDetail.kd FROM ;
sDetail;
INNER JOIN F012710A;
ON sDetail.kd=F012710A.kd ;
WHERE sDetail.no=20;
GROUP BY sDetail.cntdetfakt,sDetail.kd;
INTO CURSOR w

SELECT sDetail.cntdetfakt,sDetail.kd FROM ;
sDetail;
INNER JOIN F012710A;
ON sDetail.kd=F012710A.kd ;
WHERE sDetail.no=10;
GROUP BY sDetail.cntdetfakt,sDetail.kd;
INTO CURSOR e1

* SELECT q.cntdetfakt,w.cntdetfakt,e.cntdetfakt;
FROM ;
q ;
INNER JOIN w ;
ON q.kd=w.kd;
INNER JOIN e;
ON q.kd = e.kd ;
GROUP BY q.kd,w.kd,e.kd;
into cursor qwe

WITH thisForm.grDetail
.recordSource='q'

*!* .cln1.ControlSource='tmDetail.kd'
.cln2.ControlSource='F012710A.ois'
.cln3.ControlSource='q.cntdetfakt'
*!* .cln4.ControlSource='q.cntdetfakt'
.cln5.ControlSource='w.cntdetfakt'
*!* .cln6.ControlSource='tmf012710h.nto'
.cln8.ControlSource='e1.cntdetfakt'
*!* .cln9.ControlSource='tmDetail.kolmn'
*!* .cln10.ControlSource='tmDetail.rem'
*!* .cln11.ControlSource='tmDetail.out'
ENDWITH

Помогите создать запрос который будет выводить в Грид по колонкам мои КУРСОРЫ! там есть закоментированный запрос в котором я пытался вывести их но у меня все время на этот запрос ругается! Помогите кто чем может))
Или подскажите другой способ!
...
Рейтинг: 0 / 0
VFP 9
    #38129454
Jonny540
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex 0163,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
.....
SELECT sDetail.cntdetfakt,sDetail.kd FROM ;
sDetail;
INNER JOIN F012710A;
ON sDetail.kd=F012710A.kd ;
WHERE sDetail.no=10;
GROUP BY sDetail.cntdetfakt,sDetail.kd;
INTO CURSOR  e1 

* SELECT q.cntdetfakt,w.cntdetfakt, e .cntdetfakt;
FROM ;
q ;
INNER JOIN w ;
ON q.kd=w.kd;
INNER JOIN e;
ON q.kd = e.kd ;
GROUP BY q.kd,w.kd,e.kd;
...

Так у вас курсор "e" или "e1"?
...
Рейтинг: 0 / 0
VFP 9
    #38130083
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Jonny540,

e1! это уже было исправлено, скинул более старую версию!
суть еще в чем вывод осуществляется 3-х столбцов в Гриде но все столбцы равняюся по первому, то-есть если в первом 2 значения то и в остальных так же будет, да все значения повторяются хотя не должны
...
Рейтинг: 0 / 0
VFP 9
    #38130278
Jonny540
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex 0163,

А можно нарисовать примерчики в табличном виде: как должно быть и как есть?
И заодно скинуть примеры курсоровтаблиц?
...
Рейтинг: 0 / 0
VFP 9
    #38130332
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Jonny540,

Благодарю за помощь)) я переделал и сделал совсем по другому. Выглядит это так:

SELECT F012710A.OIS,sum(IIF(sDetail.no=10,sDetail.cntdetfakt,000))as p10,sum(IIF(sDetail.no=20,sDetail.cntdetfakt,000))as p20,sum(IIF(sDetail.no=30,sDetail.cntdetfakt,000))as p30,;
sum(IIF(sDetail.no=40,sDetail.cntdetfakt,000))as p40, sum(IIF(sDetail.no=50,sDetail.cntdetfakt,000))as p50,sum(IIF(sDetail.no=60,sDetail.cntdetfakt,000))as p60,;
sum(IIF(sDetail.no=70,sDetail.cntdetfakt,000))as p70,sum(IIF(sDetail.no=80,sDetail.cntdetfakt,000))as p80,sum(IIF(sDetail.no=90,sDetail.cntdetfakt,000))as p90,;
sum(IIF(sDetail.no=100,sDetail.cntdetfakt,000))as p100,sum(IIF(sDetail.no=105,sDetail.cntdetfakt,000))as p105 FROM ;
F012710A;
Inner JOIN sDetail;
on F012710A.kd=sDetail.kd;
GROUP BY F012710A.OIS

)))
...
Рейтинг: 0 / 0
VFP 9
    #38130451
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex 0163,

Подскажите мне другое как осуществить группировку по вычисляемым полям?
...
Рейтинг: 0 / 0
VFP 9
    #38130457
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex 0163,

Так в запросе ж есть GROUP BY F012710A.OIS
...
Рейтинг: 0 / 0
VFP 9
    #38130473
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorNG,

SELECT F012710A.OIS,(IIF(sDetail.no=10,sum(sDetail.cntdetfakt),000))as p10
Inner JOIN sDetail;
on F012710A.kd=sDetail.kd;
GROUP BY F012710A.OIS

Теперь запрос выглядит так и нужно сгрупировать по полю р10! но как это сделать я не знаю! подскажите!
...
Рейтинг: 0 / 0
VFP 9
    #38130485
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex 0163,

Так поле - сумма. Каким образом по ней группировать?
...
Рейтинг: 0 / 0
VFP 9
    #38130498
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex 0163IgorNG,

SELECT F012710A.OIS,(IIF(sDetail.no=10,sum(sDetail.cntdetfakt),000))as p10
Inner JOIN sDetail;
on F012710A.kd=sDetail.kd;
GROUP BY F012710A.OIS

Теперь запрос выглядит так и нужно сгруппировать по полю р10! но как это сделать я не знаю! подскажите!

то есть нужно вытянуть все данные с NO=10 и суммировать их! а если NO не равно 10 надо поставить 0.
...
Рейтинг: 0 / 0
VFP 9
    #38130507
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Alex 0163][quot Alex 0163]IgorNG,

SELECT F012710A.OIS,sum(sDetail.cntdetfakt) as p10
Inner JOIN sDetail;
on F012710A.kd=sDetail.kd;
WHERE sDetail.no=10
GROUP BY F012710A.OIS
...
Рейтинг: 0 / 0
VFP 9
    #38130508
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex 0163то есть нужно вытянуть все данные с NO=10 и суммировать их! а если NO не равно 10 надо поставить 0.Так разве этот кусок
Код: sql
1.
IIF(sDetail.no=10,sum(sDetail.cntdetfakt),000)

не это самое делает?

Но если вам нужна группировка результатов уже имеющегося запроса, то
Код: sql
1.
2.
3.
select ...
from (ваш_запрос) t0
group by ...
...
Рейтинг: 0 / 0
VFP 9
    #38130515
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirТак разве этот кусок
Код: sql
1.
IIF(sDetail.no=10,sum(sDetail.cntdetfakt),000)


не это самое делает?стоп, не то
тут вообще бред написан
надо так
Код: sql
1.
sum(IIF(sDetail.no=10,sDetail.cntdetfakt,0))



ЗЫ. IgorNG, ваш запрос может быть быстрее, но отсечёт все записи, у которых нет ид=10. А ТСу, может, охота их видеть с нулями.
...
Рейтинг: 0 / 0
VFP 9
    #38130517
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglir,

Как автор написал:
...
Рейтинг: 0 / 0
VFP 9
    #38130523
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglir,

Как автор написал:
"то есть нужно вытянуть все данные с NO=10 и суммировать их! а если NO не равно 10 надо поставить 0."
А что ему на самом деле нужно? Все отвечают так, как понимают вопрос :)
...
Рейтинг: 0 / 0
VFP 9
    #38130549
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем большое спасибо, имелось ввиду другое , но вы подтолкнули на умную мысль, которая помогла решить задачу!
...
Рейтинг: 0 / 0
VFP 9
    #38130837
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В FoxPro в качестве полей группировки Group by можно ставить порядковые номера полей выборки. Также как и в Order By

Код: sql
1.
2.
3.
SELECT field1, field2, sum(field3) ;
from MyTable ;
GROUP BY 1,2



Только в данном случае это не поможет, поскольку Вы хотите сделать группировку по полю, в котором выполняется суммирование. А это бессмысленно. Либо суммирование, либо группировка.
...
Рейтинг: 0 / 0
VFP 9
    #38133255
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМ,

Получился вот такой вот код!

set dele on
SELECT f012710a.ois, sdetail.kd, SUM(IIF(sDetail.no=5,sDetail.cntdetfakt,0)) as p5,SUM(IIF(sDetail.no=6,sDetail.cntdetfakt,0)) as p6,;
sum(IIF(sDetail.no=8,sDetail.cntdetfakt,0))as p8,sum(IIF(sDetail.no=9,sDetail.cntdetfakt,0))as p9,sum(IIF(sDetail.no=10,sDetail.cntdetfakt,0))as p10,;
sum(IIF(sDetail.no=11,sDetail.cntdetfakt,0))as p11,sum(IIF(sDetail.no=13,sDetail.cntdetfakt,0))as p13,;
sum(IIF(sDetail.no=15,sDetail.cntdetfakt,0))as p15,sum(IIF(sDetail.no=16,sDetail.cntdetfakt,0))as p16,sum(IIF(sDetail.no=20,sDetail.cntdetfakt,0))as p20,;
sum(IIF(sDetail.no=25,sDetail.cntdetfakt,0))as p25,sum(IIF(sDetail.no=26,sDetail.cntdetfakt,0))as p26,;
sum(IIF(sDetail.no=27,sDetail.cntdetfakt,0))as p27, sum(IIF(sDetail.no=30,sDetail.cntdetfakt,0))as p30,sum(IIF(sDetail.no=35,sDetail.cntdetfakt,0))as p35,;
sum(IIF(sDetail.no=40,sDetail.cntdetfakt,0))as p40,sum(IIF(sDetail.no=41,sDetail.cntdetfakt,0))as p41,sum(IIF(sDetail.no=43,sDetail.cntdetfakt,0))as p43,;
sum(IIF(sDetail.no=45,sDetail.cntdetfakt,0))as p45,sum(IIF(sDetail.no=50,sDetail.cntdetfakt,0))as p50,;
sum(IIF(sDetail.no=60,sDetail.cntdetfakt,0))as p60, sum(IIF(sDetail.no=70,sDetail.cntdetfakt,0))as p70,sum(IIF(sDetail.no=71,sDetail.cntdetfakt,0))as p71,;
sum(IIF(sDetail.no=74,sDetail.cntdetfakt,0))as p74,sum(IIF(sDetail.no=80,sDetail.cntdetfakt,0))as p80,sum(IIF(sDetail.no=81,sDetail.cntdetfakt,0))as p81,;
sum(IIF(sDetail.no=85,sDetail.cntdetfakt,0))as p85,sum(IIF(sDetail.no=90,sDetail.cntdetfakt,0))as p90,;
sum(IIF(sDetail.no=95,sDetail.cntdetfakt,0))as p95, sum(IIF(sDetail.no=100,sDetail.cntdetfakt,0))as p100,sum(IIF(sDetail.no=101,sDetail.cntdetfakt,0))as p101,;
sum(IIF(sDetail.no=105,sDetail.cntdetfakt,0))as p105,sum(IIF(sDetail.no=110,sDetail.cntdetfakt,0))as p110,sum(IIF(sDetail.no=115,sDetail.cntdetfakt,0))as p115,;
sum(IIF(sDetail.no=120,sDetail.cntdetfakt,0))as p120,sum(IIF(sDetail.no=125,sDetail.cntdetfakt,0))as p125,;
sum(IIF(sDetail.no=130,sDetail.cntdetfakt,0))as p130, sum(IIF(sDetail.no=135,sDetail.cntdetfakt,0))as p135,sum(IIF(sDetail.no=140,sDetail.cntdetfakt,0))as p140,;
sum(IIF(sDetail.no=150,sDetail.cntdetfakt,0))as p150,sum(IIF(sDetail.no=160,sDetail.cntdetfakt,0))as p160,sum(IIF(sDetail.no=170,sDetail.cntdetfakt,0))as p170,;
sum(IIF(sDetail.no=180,sDetail.cntdetfakt,0))as p180 FROM ;
sdetail;
LEFT JOIN f012710a ON sdetail.kd=f012710a.kd AND sdetail.no=f012710a.no;
GROUP BY 1,2;
into cursor q
...
Рейтинг: 0 / 0
VFP 9
    #38133362
XAndy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex 0163,

Простыня, однако ;). Если вот эти числа 5,6,8,9,...,170,180 есть результат некой выборки или справочник (извините, тему не читал), то можно и написание селекта автоматизировать. К примеру, пусть в табличке MyDetail в поле No перечень этих деталей, тогда Ваш селект вот

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
local cSelect
cSelect = ;
   "select "+;
   "f012710a.ois,"+;
   "sdetail.kd "
select MyDetail
scan
   cSelect = cSelect + ;
      ",sum(iif(sDetail.no="+tran(MyDetail.no)+",sDetail.cntdetfakt,0)) as p"+tran(MyDetail.no)+" "
endscan
cSelect = cSelect + ;
   "from sdetail "+;
   "left join f012710a on sdetail.kd=f012710a.kd and sdetail.no=f012710a.no "+;
   "group by 1,2 "+;
   "into cursor q "
&cSelect



(в качестве извращения :) )
...
Рейтинг: 0 / 0
VFP 9
    #38149719
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем снова привет! создаю отчет в Эксель через VFP9, он сохраняется в определенное место. Вопрос возможно ли через VFP9 форматировать или создавать сразу этот файл со своими параметрами в ШАПКЕ экселя????
...
Рейтинг: 0 / 0
VFP 9
    #38149806
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex 0163,

сразу - нет, пишите свой "выгружатор" или используйте имеющийся.
...
Рейтинг: 0 / 0
VFP 9
    #38149820
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,

а возможно ли создать отчет в файл Эксель в готовый шаблон который был создан ранее(в котором уже сформирована шапка)???
...
Рейтинг: 0 / 0
VFP 9
    #38149842
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex 0163, смотря что вы понимаете под словом "шаблон". Если шапку - то поищите тут по "arraypasser".
...
Рейтинг: 0 / 0
VFP 9
    #38149914
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,

Шаблон -это уже заранее готовый Эксель файл с уже готовой шапкой в который нужно только внести данные
...
Рейтинг: 0 / 0
VFP 9
    #38150502
Jonny540
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex 0163tanglir,

Шаблон -это уже заранее готовый Эксель файл с уже готовой шапкой в который нужно только внести данныеВносите, кто мешает? Ессно, не "одной командой". И шапку можно сделать из фокса, только ручками немного поработать придется...
...
Рейтинг: 0 / 0
VFP 9
    #38150585
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Jonny540,
а можно пример кода в котором мы с заполняем шаблон или или как создается КРАСИВАЯ шапка в фоксе
...
Рейтинг: 0 / 0
VFP 9
    #38150629
Alex 0163Jonny540,
а можно пример кода в котором мы с заполняем шаблон или или как создается КРАСИВАЯ шапка в фоксе
Чем отличается "шаблон" от "не шаблона"? Да ничем... Просто провели некую подготовку, красивостей нарисовали....
А так - точно так же помещаем значения в ячейки.... Объединяем ячейки, меняем шрифт и размер букв и т.д. Можно даже формулу засунуть....
[SRC пример из реальной программы]
LPARAMETERS ldDate1,lDdate2,tnkodadr,lcregion,tnkodisp,tnmode,lcFileName

SET date GERMAN
#INCLUDE "..\..\libs\include\fatfact.h"
#INCLUDE "..\LIBS\INCLUDE\excel.h"

* проверяем количество параметров и то, что нам передали в параметрах
... удалено....

*подготваливаем необходимые вспомогательные данные
lnweek = WEEK(ldDate1,1, 2)
loWeek1 = GetFirstDayOfWeek(lnweek, YEAR(ldDate1))
loWeek2 = GetFirstDayOfWeek(lnweek+1, YEAR(ldDate1))
loWeek3 = GetFirstDayOfWeek(lnweek+2, YEAR(ldDate1))
loWeek4 = GetFirstDayOfWeek(lnweek+3, YEAR(ldDate1))
loWeek5 = GetFirstDayOfWeek(lnweek+4, YEAR(ldDate1))
loWeek6 = GetFirstDayOfWeek(lnweek+5, YEAR(ldDate1))

ldBeg6 = loWeek6.dFirstDay
ldEnd6 = loWeek6.dLastDate
ldBeg5 = loWeek5.dFirstDay
ldEnd5 = loWeek5.dLastDate
ldBeg4 = loWeek4.dFirstDay
ldEnd4 = loWeek4.dLastDate
ldBeg3 = loWeek3.dFirstDay
ldEnd3 = loWeek3.dLastDate
ldBeg2 = loWeek2.dFirstDay
ldEnd2 = loWeek2.dLastDate
ldBeg1 = loWeek1.dFirstDay
ldEnd1 = loWeek1.dLastDate

*Подготавливаем данные для выдачи в Excel
... удалено....

SELECT * from curtmp INTO CURSOR tmp READWRITE

* Делаем строку для итогов первого уровня
SELECT 1 as sel, koddept, kodtrademark, tradename, kodcomppay, companyname FROM tmp GROUP BY 1,2,3,4,5,6 INTO CURSOR cur_itg_comp
* Делаем строку для итогов второго уровня
SELECT 2 as sel, 999999999 as kodtrademark, " " as tradename, kodcomppay, "Итого по "+companyname as companyname FROM tmp GROUP BY 1,2,3,4,5 INTO CURSOR itg_comp

SELECT tmp
APPEND FROM DBF('cur_itg_comp')
APPEND FROM DBF('itg_comp')
SELECT * from tmp ORDER BY kodcomppay, kodtrademark, sel, koddept, code INTO CURSOR tmp && Упорядочиваем строки: сначала строки с данными, потом итоги первого уровня, потом итоги второго уровня...

IF RECCOUNT('tmp')=0
RETURN
ENDIF

*Открываем шаблон
lcNameFileOpen = 'с:\Template\Шаблон_new.xlt'
MyXlsFactory = .... && Создаем объект приложения Excel
MyXlsFactory.Off_App.Workbooks.ADD(lcNameFileOpen) && Открываем шаблон
MyXlsFactory.Off_App.DisplayAlerts = .f.
MyXlsFactory.WorkSheet = MyXlsFactory.Off_App.Sheets(1)
MyXlsFactory.Off_App.Sheets(1).Activate
MyXlsFactory.Off_App.Calculation = xlManual && переводим в ручной режим

* заполняем ячейки на рабочем листе Экселя
... удалено ...

WITH MyXlsFactory.WorkSheet

* Украшательства: Ставим группировку в Экселе и прописываем формулы, отсутствующие в шаблоне
* Первые пять строк - шапка шаблона
SELECT tmp
i = 0
k = 0
p = 0
indexgrp = 5
SCAN

IF sel = 0
i = i + 1
ELSE
IF sel = 1
p = RECNO()
.range(.cells[6+ p- i,1],.cells[6+ p-1,1]).Rows.Group
.range(.cells[6+ p - i,1],.cells[6+ p-1,1]).Rows.Group
.range(.cells[6+ p- i,1],.cells[6+ p-1,1]).Rows.Group
.cells[6+ p,1].Rows.Group
.cells[6+ p,1].Rows.Group
.range(.cells[6+ p,1],.cells[6+ p,153]).Font.FontStyle = ...
.range(.cells[6+ p,1],.cells[6+ p,153]).Interior.ColorIndex = 15
FOR k = 6 TO 152
.cells[6+ p,k].FormulaR1C1 = TEXTMERGE('=SUM(R[-<<i>>]C:R[-1]C)')
ENDFOR

.cells[6+ p,153].FormulaR1C1 = TEXTMERGE('=IFERROR((RC[-2]/RC[-3])*100,"""")')

i = 0
endif
ENDIF
ENDSCAN

*продолжаем украшательства, группы следующего уровня группировки
SELECT tmp
GO TOP
i = 0
k = 0
p = 0
indexgrp = 5
formula = ''
SCAN FOR sel = 2
p = RECNO()
lnKOdcomp = tmp.kodcomppay
SELECT RECNO() as recid, sel,kodcomppay FROM tmp INTO CURSOR test WHERE sel > 0 AND tmp.kodcomppay = lnkodcomp ORDER BY 2 desc
SELECT test
GO top
p1 = test.recid
SKIP 1
DO while !EOF()
IF EMPTY(formula)
formula = "="
ELSE
formula = formula + "+"
ENDIF
formula = formula + "R["+ALLTRIM(STR(test.recid - p1))+"]C"
SKIP 1
ENDDO
.cells[6+ p,1].Rows.Group

.range(.cells[6+ p,1],.cells[6+ p,153]).Font.FontStyle = ....
.range(.cells[6+ p,1],.cells[6+ p,153]).Interior.ColorIndex = 15
FOR k = 6 TO 152
.cells[6+ p,k].FormulaR1C1 = TEXTMERGE(formula)
ENDFOR

.cells[6+ p,153].FormulaR1C1 = TEXTMERGE('=IFERROR((RC[-2]/RC[-3])*100,"""")')

formula = ''
i = 0
SELECT tmp
ENDSCAN

p1 = RECCOUNT("tmp")+1
.range(.cells[6+ p1,1],.cells[6+ p1,153]).Font.FontStyle = ....
.range(.cells[6+ p1,1],.cells[6+ p1,153]).Interior.ColorIndex = 15

* Итоги по документу (TOTAL)
FOR k = 6 TO 151
.cells[6+ p1,k].FormulaR1C1 = TEXTMERGE('=SUMIF(R[-<<p1-1>>]C[-<<k-2>>]:R[-1]C[-<<k-2>>],"",R[-<<p1-1>>]C:R[-1]C)')
ENDFOR

.cells[6+ p1,152].FormulaR1C1 = TEXTMERGE('=SUMIF(R[-<<p1-1>>]C[-<<k-2>>]:R[-1]C[-<<k-2>>],"",SUMIF(R[-<<p1-1>>]C:R[-1]C,"<0",R[-<<p1-1>>]C:R[-1]C))')
.cells[6+ p1+1,152].FormulaR1C1 = TEXTMERGE('=SUMIF(R[-<<p1-1>>]C[-<<k-2>>]:R[-1]C[-<<k-2>>],"",SUMIF(R[-<<p1-1>>]C:R[-1]C,">=0",R[-<<p1-1>>]C:R[-1]C))')
.cells[6+ p1,153].FormulaR1C1 = TEXTMERGE('=IFERROR((RC[-2]/RC[-3])*100,"""")') &&TEXTMERGE('=IFERROR((1-ABS(RC[-2])/RC[-1])*100,"""")')
ENDWITH

MyXlsFactory.Off_App.Calculation = xlAutomatic && Переводим вычисления в автоматический режим
* Здесь сформированный документ отражается на экране пользователя....

* Чистим за собой все курсорры
USE IN SELECT('tmp')
USE IN SELECT('cur_itg_comp')
USE IN SELECT('itg_comp')
...
[/SRC]
...
Рейтинг: 0 / 0
VFP 9
    #38151572
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Станислав С...кий,

большое спасибо
...
Рейтинг: 0 / 0
VFP 9
    #38169351
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex 0163,

Всем привет! нужна помощь есть вот такие запросики:

SET DELETED on
SELECT Sdetail.id_sm, Stask.datesm,Stask.smena, MAX(Sdetail.no)as max_nom FROM sdetail ;
INNER JOIN stask ;
ON Sdetail.id_sm = Stask.id_sm;
WHERE BETWEEN(stask.datesm,DATE(2013,02,18),DATE(2013,02,22));
AND right(cast(sdetail.no as m),1) = '0';
group by 1,2,3;
into cursor q

Select q.id_sm, q.datesm,q.smena, q.max_nom, SUM(Sdetail.massa) FROM q;
left join sdetail;
ON q.id_sm = sdetail.id_sm;
AND q.max_nom= Sdetail.no;
GROUP BY 1,2,3,4;

Помогите сделать что бы это все делалось в одном запросе. заранее спасибо
...
Рейтинг: 0 / 0
VFP 9
    #38169366
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex 0163Помогите сделать что бы это все делалось в одном запросе.
Alex 0163Select q.id_sm, q.datesm,q.smena, q.max_nom, SUM(Sdetail.massa) FROM >>>q<<<;
left join sdetail;выделенное заменяете на
Код: sql
1.
(текст_первого_запроса) as q
...
Рейтинг: 0 / 0
VFP 9
    #38169369
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
Select   q.id_sm, q.datesm,q.smena, q.max_nom, SUM(Sdetail.massa)  FROM q;
           left join sdetail;

вот так выделенное.
...
Рейтинг: 0 / 0
VFP 9
    #38169384
Alex 0163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,

а в одном Select можно все сделать?
...
Рейтинг: 0 / 0
99 сообщений из 99, показаны все 4 страниц
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / VFP 9
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]