powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как сложить поля в таблицах
25 сообщений из 83, страница 2 из 4
Как сложить поля в таблицах
    #38175177
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
94Dima T, вот в той теме было то что мне надо сделать тоже
В той теме решали обратную задачу. Там изначально есть нормализованная таблица из тех полей: Предмет, Ученик, Кол-во пропусков (если применительно к данному примеру). А из этой надо было построить сводную (если в терминах экселя выражаться).
У тебя есть исходная таблица откуда эти 12 взялись?
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175180
94
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
94
Гость
Dima T, исходная таблица как в той же только с другими полями, данными, а 12 потому что за каждый месяц один такой сводный будет создаваться как в том примере, а затем нужно все 12 сложить и получить годовой отчет. Я недели три пробовала решить первую часть но потом отложила, а теперь как там попробовала получилось. но вот сложение не знаю как делать в таких таблицах
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175184
94
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
94
Гость
94, есть вообще какой-то способ решить мою задачку? Если 255 только увидеть можно, то хотя бы разделить на две части. или если возможно то выделить ту часть где есть только цифры (т.е. начиная со второго столбца и выкинув первые три строки всех полей) вычислить все сумму всех 12-ти, а потом обратно подставить. Если конечно такое можно сделать
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175185
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
94Dima T, исходная таблица как в той же только с другими полями, данными, а 12 потому что за каждый месяц один такой сводный будет создаваться как в том примере, а затем нужно все 12 сложить и получить годовой отчет. Я недели три пробовала решить первую часть но потом отложила, а теперь как там попробовала получилось. но вот сложение не знаю как делать в таких таблицах
Надо вместо месяца указать период год, остальное все точно также. И не надо пытаться решить в два шага, это гораздо сложнее.
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175190
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
94sg12, не могли бы вы для 3-4 таблиц показать пример?

Огорчу вас.
Таблицы в базах данных имеют другую структуру. Наглядность в них достигается другим, программным путем.
Ваша база данных известена как учебный пример "Преподаватели и студенты", или наз. что-то похожее.
Вам надо найти несколько готовых решений и изучить их.
Вообще-то неплохая вещь, затраченное время окупится.
В них задачи типа вашей решаются одним несложным запросом.

К примеру.
Даже необходимости разбивать на 12 месяцев нет.
Слейте их в одну таблицу, уберите "шапки", переделайте поля в числовые и ваш запрос упростится.
При необходимости нужный месяц вы сможете наглядно просматривать через фильтр.
Да и от этих 277 полей нужно избавляться, создав таблицу со списком фамилий.
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175191
94
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
94
Гость
Dima T, у меня 12 разных таблиц :( это все не в одной таблице же ведь.
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175192
94
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
94
Гость
А как сложить просто такие поля: tab1.fil1, tab2.fil1,tab3.fil1, если все поля числовые?
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175217
94
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
94
Гость
Можно ли сделать так? : пример с того запроса взяла чтобы вам показать:

тут в 12 курсоров вывести нужные поля из 12-ти полей
Код: sql
1.
2.
SELECT code, lpu FROM pac_foms_issleds1 WHERE excluded=.f. INTO CURSOR curData1
SELECT code, lpu FROM pac_foms_issleds2 WHERE excluded=.f. INTO CURSOR curData2



Тут подсчитать количество для 12 таблиц
Код: sql
1.
2.
SELECT t0.code, t0.lpu, COUNT(*) as mark FROM curData1 t0 GROUP BY 1,2 INTO CURSOR cc1
SELECT t0.code, t0.lpu, COUNT(*) as mark FROM curData2 t0 GROUP BY 1,2 INTO CURSOR cc2



Затем просуммировать все 12 таблиц, а именно поле mark. и подставить этот курсор вот сюда:

Код: sql
1.
2.
3.
4.
5.
SELECT PADR(t1.code+'    '+NVL(t2.name_issl,''),nSizeName) AS idRow, CHRTRAN(STR(t1.lpu,3),' ','0') as idCol, ;
 PADR(LTRIM(STR(t1.mark)),nSizeCell) as mark ;
 FROM ([color=red]ВОООТ СЮДА[/color]) t1 ;
  LEFT JOIN issled t2 ON t1.code=t2.shifr ;
INTO CURSOR curTempD



Так правильно ли будет логически вообще?
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175236
94
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
94
Гость
только я не поняла как сделать этот

Код: sql
1.
SELECT code, lpu FROM pac_foms_issleds WHERE BETWEEN(dat_obs,{^2012-01-10},{^2012-01-15}) INTO CURSOR curData



для 12 таблиц вернее как их объединить потом один курсор
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175255
94
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
94
Гость
Как эти курсоры объединить в один чтобы из таблиц не пропали значения и чтобы в результате получился курсор CUR в котором два поля code И lpu co всеми code и lpu из всех 4 таблиц?

Код: sql
1.
2.
3.
4.
SELECT code, lpu FROM pac_foms_issleds1 WHERE excluded=.f. INTO CURSOR curData1
SELECT code, lpu FROM pac_foms_issleds2 WHERE excluded=.f. INTO CURSOR curData2
SELECT code, lpu FROM pac_foms_issleds3 WHERE excluded=.f. INTO CURSOR curData3
SELECT code, lpu FROM pac_foms_issleds4 WHERE excluded=.f. INTO CURSOR curData4
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175277
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
94

Правильно будет в базе данных создать четыре таблицы примерно с такими с полями:
Группы (классы) - idTab,cName
Студенты (ученики) - idTab,idGroup,cName
Предметы - idTab,cName
Посещаемость - idTab,nMonth,idPredmet,idStudent,nExclud
Первые три таблицы - это справочники.
Детали - индексы, связи, фильтры, запросы вам подскажут, разберетесь.
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175286
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
94 ,
Зачем что-то создавать из кросса? Как уже было сказано - покажите пример таблиц-исходников, на основе которого вы получили свои table1...tableX. Поскольку вот прямо из этого исходника всё и считается...
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175396
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
94Как эти курсоры объединить в один чтобы из таблиц не пропали значения и чтобы в результате получился курсор CUR в котором два поля code И lpu co всеми code и lpu из всех 4 таблиц?


Можно
Код: sql
1.
2.
3.
4.
5.
SELECT code, lpu FROM pac_foms_issleds1 WHERE excluded=.f.;
  union all (SELECT code, lpu FROM pac_foms_issleds2 WHERE excluded=.f.);
  union all (SELECT code, lpu FROM pac_foms_issleds3 WHERE excluded=.f.);
  union all (SELECT code, lpu FROM pac_foms_issleds4 WHERE excluded=.f.);
  INTO CURSOR curData
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175398
94
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
94
Гость
Dima T, извините можно узнать? этим кодом поля lpu и code объединили вы? или что сделали
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175399
94
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
94
Гость
Dima T, потому что lpu же у него это номер ЛПУ оно как бы не должно меняться также как и код, а я этот код запускаю ЛПУ с номером 1 вообще нету теперь
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175401
q1w1e1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прежде чем оптимизировать на SQL, попробуйте всё это сделать в цикле...
Например
select t1
go top
select t2
go top
select t3
go top
*создать структуру таблицы для хранения результатов
select * from tab1 where .F. into cursor cc1
do while .T.
append blank
cc1.fil1= tab1.fil1+ tab2.fil1+tab3.fil1 && тут можно сделать перевод в строку каждого fil
select t1
skip
select t2
skip
select t3
skip
if eof("t1") or eof("t2") or eof("t3")
exit
endif
enddo
Это примерно или я не понял условие задачи....
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175406
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
94Dima T, потому что lpu же у него это номер ЛПУ оно как бы не должно меняться также как и код, а я этот код запускаю ЛПУ с номером 1 вообще нету теперь
этот запрос объединяет данные из таблиц pac_foms_issleds1, pac_foms_issleds2, pac_foms_issleds3, pac_foms_issleds4 в один курсор curData
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175410
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Следующий шаг
Код: sql
1.
SELECT t0.code, t0.lpu, COUNT(*) as mark FROM curData t0 GROUP BY 1,2 INTO CURSOR cc
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175416
94
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
94
Гость
Dima T, после группировки потом будет как мне надо то есть? в первом столбике code, а во втором lpu ?
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175417
94
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
94
Гость
q1w1e1, условие задачи такое что нужно сложить поля st1,st2...st200 пропустив во всех 12-ти таблицах первые три строчки так как там слова(символы), а в последующих строках цифры которые надо сложить
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175420
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
94,

автору меня 277 столбцов и 180 строк.

я считаю это отрыжкой екселя
как вы можете гарантировать, что в столбце 89 будет Иванов, а в 189-Петров
во всех 12 таблицах

за год, даже в школах есть движение учеников(приход/уход/перекомплектование )
в классах/группах есть однофамильцы

оптимально таблица(вернее 2 таб)
таб1
ид1годмесяцденькласспредмет12013030610аматематика2345

таб2
ид2ид1фио11Иванов21Петров

а ваши простыни получать запросами
--по классу
--по предмету
--по периоду/предмету
..................

а ваши эксель простыни перегнать в таблички не проблема
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175422
94
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
94
Гость
Dima T, я сделала как вы говорите и у меня в курсоре cc есть три поля теперь code,lpu и mar. Есть ЛПУ с номером 1 в таблицах pac_foms_issleds1, но в курсоре CC в поле lpu 1 нигде нету. Как это понять? (

Я хотела так чтобы было: все 4 таблицы объединить так чтобы все поля code из всех таблиц оказались в поле code, а напротив в поле lpu номер lpu, для которого это поле code соответствует? В вашем коде так делается? Я это не поняла
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175424
94
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
94
Гость
ПЕНСИОНЕРКА, мне именно так сказали делать, потому что первые три строчки будут шапкой и после всего окончательный вариант отчет за год будет выведен в эксель
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175429
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
94Dima T, я сделала как вы говорите и у меня в курсоре cc есть три поля теперь code,lpu и mar. Есть ЛПУ с номером 1 в таблицах pac_foms_issleds1, но в курсоре CC в поле lpu 1 нигде нету. Как это понять? (
значит для lpu 1 в pac_foms_issleds1 excluded=.T.
нет других причин не попасть в curData, а из него в CC


Код: sql
1.
2.
3.
4.
5.
SELECT code, lpu FROM pac_foms_issleds1 WHERE excluded=.f.;
  union all (SELECT code, lpu FROM pac_foms_issleds2 WHERE excluded=.f.);
  union all (SELECT code, lpu FROM pac_foms_issleds3 WHERE excluded=.f.);
  union all (SELECT code, lpu FROM pac_foms_issleds4 WHERE excluded=.f.);
  INTO CURSOR curData


это запрос берет все записи из pac_foms_issleds1 где excluded=.f.
добавляет все записи из pac_foms_issleds2 где excluded=.f.
добавляет все записи из pac_foms_issleds3 где excluded=.f.
добавляет все записи из pac_foms_issleds4 где excluded=.f.
и сохраняет результат в курсор curData
больше никаких вычислений/преобразований он не делает
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175431
94
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
94
Гость
Dima T, Да, запрос делает так, но я сейчас оставила для примера по 5 записей во всех таблицах и применила ваш код, у меня получилось в поле code 5 значений в lpu 5 и в mark 5, хотя во всех таблицах по 5 значений и вроде должно быть 20 значений. так как одна строчка из pac_foms_issleds1 это одна медо.бследование. Вот как мне сделать чтобы все 20 появились
...
Рейтинг: 0 / 0
25 сообщений из 83, страница 2 из 4
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как сложить поля в таблицах
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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