powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как сложить поля в таблицах
25 сообщений из 83, страница 3 из 4
Как сложить поля в таблицах
    #38175432
94
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
94
Гость
94, Ой, извините. Этот код и правда выводит 20 записей.

Код: 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



А зачем мне тогда этот кусок. Он вроде мне не нужен. Из куска где union all получаем все значения code и соответсвтвующие значения lpu, и дальше можно как в том примере обратно создать кросс-таблицу. Или я что-то пропустила?
Код: sql
1.
SELECT t0.code, t0.lpu, COUNT(*) as mark FROM curData t0 GROUP BY 1,2 INTO CURSOR cc
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175439
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
94Dima T, Да, запрос делает так, но я сейчас оставила для примера по 5 записей во всех таблицах и применила ваш код, у меня получилось в поле code 5 значений в lpu 5 и в mark 5, хотя во всех таблицах по 5 значений и вроде должно быть 20 значений. так как одна строчка из pac_foms_issleds1 это одна медо.бследование. Вот как мне сделать чтобы все 20 появились
20 в curData


это запрос с группировкой по code, lpu
Код: sql
1.
SELECT t0.code, t0.lpu, COUNT(*) as mark FROM curData t0 GROUP BY 1,2 INTO CURSOR cc


в СС столько строк сколько уникальных пар значений code, lpu, а в поле mark сколько раз значение повторилось. Т.е. если в СС сложить все поля mark будет 20


Ты писала что pac_foms_issleds1 это исходные данные за месяц и получить по ним конечный отчет за месяц получилось? Так?
Если так, то curData тоже самое что pac_foms_issleds1 только с данными за 4 месяца. Делай дальше все точно также как делала с pac_foms_issleds1 и получишь отчет за 4 месяца
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175442
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
94А зачем мне тогда этот кусок. Он вроде мне не нужен.
Код: sql
1.
SELECT t0.code, t0.lpu, COUNT(*) as mark FROM curData t0 GROUP BY 1,2 INTO CURSOR cc


хз зачем он тебе. Ты тут его писала , я скопировал.
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175446
94
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
94
Гость
Dima T, А, я поняла. Сначала за 4 месяца берем все заносим в CurData, затем тут

Код: sql
1.
SELECT t0.code, t0.lpu, COUNT(*) as mark FROM curData t0 GROUP BY 1,2 INTO CURSOR cc



получается считаем количество как в том примере только для 4-х месяцев. Я просто запуталась немножко.
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175451
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
94ПЕНСИОНЕРКА, мне именно так сказали делать, потому что первые три строчки будут шапкой и после всего окончательный вариант отчет за год будет выведен в эксель

в любом случае --я делала бы по схеме
--перегнала 12 таблиц в 2 таблицы
--получила нужные итоги
--вывела их в ексель(кстати ---сколько получится страниц в ширину , похоже около 30)
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175452
94
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
94
Гость
ПЕНСИОНЕРКА, Вот я тоже хочу перегнать все 12 только в 1, где есть code и lpu поля из всех 12-ти таблиц. А потом как в том примере создать кросс-таблицу.
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175461
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
94Dima T, А, я поняла. Сначала за 4 месяца берем все заносим в CurData, затем тут

получается считаем количество как в том примере только для 4-х месяцев.
Все верно
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175463
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
94,


при применении аксесс -2таб, в этом случае легче вводить первичную информацию

у вас же информация уже введена, поэтому можно использовать только ексель с одной таблицей, на которую повесить сводную
хотя надо гарантировать , что нет однофамильцев
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175464
94
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
94
Гость
Dima T, У меня последний вопрос: Если с помощью union all и потом группировкой занести данные за 12 или 4 месяца в курсоры, то ничего же не нужно мне складывать потом? Я получаю в курсорах информацию за тот период сколько раз использовала этот кусок? И потом спокойно могу создать кросс табличку как там? Просто не хочу сейчас что-то пропустить или напутать(

Код: sql
1.
SELECT code, lpu FROM pac_foms_issleds2 WHERE excluded=.f.
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175466
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник

Код: 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


А зачем мне тогда этот кусок. Он вроде мне не нужен. Из куска где union all получаем все значения code и соответсвтвующие значения lpu, и дальше можно как в том примере обратно создать кросс-таблицу. Или я что-то пропустила?
Код: sql
1.
SELECT t0.code, t0.lpu, COUNT(*) as mark FROM curData t0 GROUP BY 1,2 INTO CURSOR cc

I'm silence... Я хренею над вами, ребята...
Я, случайно посмотрев на попытку пришедшего к нам человека, попытался помочь Ичкерии...
И тут же нарисовались студенты, которые хотять иже...
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175471
94
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
94
Гость
AndreTM, я сначала хочу разобрать пример который разбирали там, а потом под свои таблицы переделать. Лучше сначала понять, а потом свое сделать уже что-то понимая в этом. Так что сначала прочитала тот пост. Потому что задачка такая же только еще надо было это все из 12-ти таблиц посчитать
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175473
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
94Dima T, У меня последний вопрос: Если с помощью union all и потом группировкой занести данные за 12 или 4 месяца в курсоры,
с помощью union all объединяются данные из 12 (или 4) таблиц в один курсор.

94то ничего же не нужно мне складывать потом?
не нужно, т.к. все уже в одном курсоре.

После union all таблицы pac_foms_issleds1, pac_foms_issleds2 и т.д. больше не нужны, т.к. дальше работа идет только с курсором.
По курсору строится кросс табличка.
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175476
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
94,

я не уверена, что вам подходит union all
у вас может быть разное количество столбцов в таблицах
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175480
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Повторить?
UNION нужен только тогда, когда ТС понимает смысл объединения. Исходя же из постов - не понимает...
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175484
94
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
94
Гость
AndreTM, union не я же написала, мне тут написали, что можно так сделать. Если не подходит union, то какой способ лучше? Сама плохо понимаю, поэтому обратилась за помощью, когда тут увидела похожую тему, такую же как и мне нужно сделать
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175488
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
94

И как вы собираетесь работать с этими за 200 полями, да еще с фамилиями.
У вас же отчеты будут уходить за горизонт.

Вы напрасно ориентируетесь на пример с ЛПУ. Это отчет, неумело составленный таким же новичком, как вы. Такова сложившиеся специфика в медучреждениях с досовских времен - разворачивать отчеты по горизонтали.

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

К примеру.
Попробуйте вышеупомянутую мной таблицу "Посещаемость" изменить так:
Убрать поля nMonth и nExclud, для учета посещаемости по месяцам добавить поля nMonth1, nMonth2, ... nMonth12,nYear
Тогда суммирование у вас будет наглядно выполняться одной командой REPLACE ALL.
Необходимые отчеты вы будете получать из таблиц запросами. Для их отображения в EXCEL есть свои способы, рисуйте там свои шапки.
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175495
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
94..какой способ лучше? Сама плохо понимаю, поэтому обратилась за помощью, когда тут увидела похожую тему, такую же как и мне нужно сделатьAndreTM 94 ,
Зачем что-то создавать из кросса? Как уже было сказано - покажите пример таблиц-исходников, на основе которого вы получили свои table1...tableX. Поскольку вот прямо из этого исходника всё и считается...
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175497
Ребята, возможно, что у меня столбцы всегда будут определенного количества, потому что в столбцы это ЛПУ направившие своих пациентов в наш центр. И каждый месяц хоть одного человека то что отправляют от каждого ЛПУ это мне кажется 100%, я тут читал пост и т.к. у меня есть 12 таблиц таких за прошедший год попробовал получить годовой отчет и результат выдал в курсор нормальный вроде бы. Вот код весь:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
nSizeCell=50
nSizeName=90

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.);
	union all (SELECT code, lpu FROM pac_foms_issleds5 WHERE excluded=.f.);
	union all (SELECT code, lpu FROM pac_foms_issleds6 WHERE excluded=.f.);
	union all (SELECT code, lpu FROM pac_foms_issleds7 WHERE excluded=.f.);
	union all (SELECT code, lpu FROM pac_foms_issleds8 WHERE excluded=.f.);
	union all (SELECT code, lpu FROM pac_foms_issleds9 WHERE excluded=.f.);
	union all (SELECT code, lpu FROM pac_foms_issleds10 WHERE excluded=.f.);
	union all (SELECT code, lpu FROM pac_foms_issleds11 WHERE excluded=.f.);
	union all (SELECT code, lpu FROM pac_foms_issleds12 WHERE excluded=.f.);
	INTO CURSOR curData
  
SELECT DISTINCT '00000    Номер ЛПУ' AS IdRow, CHRTRAN(STR(t1.lpu,3),' ','0') AS idCol, ;
	PADR(LTRIM(STR(t2.lpu)),nSizeCell) AS mark ;
	FROM curData t1 INNER JOIN lpu t2 ON t1.lpu=t2.lpu INTO CURSOR LpuNumbers
 
SELECT DISTINCT '00000    ЛПУ направившие' AS IdRow, CHRTRAN(STR(t1.lpu,3),' ','0') AS idCol, ;
	PADR(t2.nam,nSizeCell) AS mark ;
	FROM curData t1 INNER JOIN lpu t2 ON t1.lpu=t2.lpu INTO CURSOR LpuNames
  
SELECT DISTINCT '00000    Код ЛПУ ФОМС' AS IdRow, CHRTRAN(STR(t1.lpu,3),' ','0') AS idCol, ;
	PADR(t2.fomslpu,nSizeCell) AS mark ;
	FROM curData t1 INNER JOIN lpu t2 ON t1.lpu=t2.lpu INTO CURSOR LpuFoms
 
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 (SELECT t0.code, t0.lpu, COUNT(*) as mark FROM curData t0 GROUP BY 1,2) t1 ;
	LEFT JOIN issled t2 ON t1.code=t2.shifr INTO CURSOR NameIssleds
  
SELECT * FROM LpuNumbers ;
	UNION ;
	select * FROM LpuNames ;
	UNION ;
	select * FROM LpuFoms ;
	UNION ;
	select * FROM NameIssleds INTO CURSOR curTempD

DO vfpxtab.prg WITH 'curTemp',,.f.,,1,2,3,,,.f.

SELECT curTemp
UPDATE curTemp SET Idrow=SUBSTR(Idrow,10)

SELECT curtemp
brow

...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175498
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sg12,
Get Out
Please...
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175518
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
94,
вот вам образец реализации
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175521
Вроде правильно посчитало все. Если и мне придется такой годовой отчет делать? такой код сможет все посчитать интересно, при условии что количество ЛПУ всегда одинаково?
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175528
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTM sg12,
Get Out
Please...

Я уже давал одному студенту ссылку на книгу:
Глушаков С.В. Ломотько Д.В. Базы данных. Учебный курс.
Вам тоже он был бы не лишний.
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175531
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр1986, за объединения вас повбывали бы

Допустим, я вчера говорил об оптимизации запросов...
На протяжении всего лишь (а методику уже начали разносить) полдня, за что-то никому из студиозов не пришло в голову изменить селект...
Код: sql
1.
SELECT code, lpu, count(*) FROM ... INTO CURSOR curData WHERE ... GROUP BY 1,2

для того, чтобы затем не делать встроенный запрос в последнем селекте...
------------------
I'm silence too
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175544
AndreTM, там WHERE excluded=.f. больше же нету критериев для отбора. все строки должны попасть, в котором поле excluded=false.

Думаю и мне бы понадобился запрос, который объединяет таблицы, потому что сегодня им нужно за месяц отчет, завтра скажут а давайте сразу за год или пол года. Спасибо. За год тоже формирует нормально, главное чтобы ничего не пропускало во время запросов
...
Рейтинг: 0 / 0
Как сложить поля в таблицах
    #38175571
94
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
94
Гость
Александр1986, правильно ли будет формироваться годовой отчет как тут писал Александр? Мне уже нужно под себя переделать и показать. просто ответьте Да или Нет при условии что столбцы (ЛПУ) всегда одинакового количества в данном случае всегда одинаково
...
Рейтинг: 0 / 0
25 сообщений из 83, страница 3 из 4
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как сложить поля в таблицах
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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