Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3 4   вперед  Ctrl      все
 Как сложить поля в таблицах  [new]
94
Member

Откуда:
Сообщений: 37
Всем приветик. Есть 12 таблиц с одинаковыми полями типа так:

ID (содержит названия предметов), st1,st2,st3.... st200 (имена учеников) а на пересечении пропуски. Как сложить все пропуски в такой таблице. Пример таблицы на картинке показан.

К сообщению приложен файл. Размер - 27Kb
5 мар 13, 15:46    [14015215]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить поля в таблицах  [new]
94
Member

Откуда:
Сообщений: 37
Никто не знает да? :-(
5 мар 13, 16:12    [14015403]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить поля в таблицах  [new]
PaulWist
Member

Откуда:
Сообщений: 2236
94
Никто не знает да? :-(


select sum(st1), sum(st2) ,.... from tabla
5 мар 13, 16:16    [14015429]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить поля в таблицах  [new]
94
Member

Откуда:
Сообщений: 37
PaulWist, ну так мне же не в одной таблице надо, а каждое соответствующее поле сложить в 12-ти таблицах.

Для примера можно в трех показать дальше я сама
5 мар 13, 16:17    [14015440]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить поля в таблицах  [new]
94
Member

Откуда:
Сообщений: 37
PaulWist, поле st1 таблицы tab1 с полем st2 таблицы tab2 и т.д.
5 мар 13, 16:18    [14015446]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить поля в таблицах  [new]
PaulWist
Member

Откуда:
Сообщений: 2236
94
PaulWist, поле st1 таблицы tab1 с полем st2 таблицы tab2 и т.д.


CREATE CURSOR t1 (f1 int)
CREATE CURSOR t2 (f2 int)

INSERT INTO t1 values(1)
INSERT INTO t2 values(2)

SELECT SUM(s) as s FROM ;
(select SUM(f1) as s FROM t1;
union all;
select SUM(f2) as s FROM t2;
) bb
5 мар 13, 16:24    [14015497]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить поля в таблицах  [new]
94
Member

Откуда:
Сообщений: 37
PaulWist, Это ведь легче вручную считать чем так вводить, у меня 277 столбцов и 180 строк.

Можно сделать такое:
Пропускать во всех таблицах первую строку, и первый столбец, остальное через VAL() преобразовывать в числовые и складывать? Если да, то как?
5 мар 13, 16:27    [14015528]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить поля в таблицах  [new]
ПЕНСИОНЕРКА
Member

Откуда: Владимирская обл
Сообщений: 4728
94,

автор
поле st1 таблицы tab1 с полем st2 таблицы tab2 и т.д.



может
поле st1 таблицы tab1 с полем st1 таблицы tab2 .
поле st2 таблицы tab1 с полем st2 таблицы tab2
....................
5 мар 13, 16:31    [14015562]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить поля в таблицах  [new]
ПЕНСИОНЕРКА
Member

Откуда: Владимирская обл
Сообщений: 4728
94,

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


вы бы лучше базу выложили, а то не понять что с чем складывать
5 мар 13, 16:33    [14015575]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить поля в таблицах  [new]
94
Member

Откуда:
Сообщений: 37
ПЕНСИОНЕРКА, Да да да, извините за ошибку, просто весь день мучаюсь голова кругом
5 мар 13, 16:33    [14015578]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить поля в таблицах  [new]
Jonny540
Member

Откуда:
Сообщений: 727
94
... у меня 277 столбцов и 180 строк.
Где ж Вы столько предметов взяли? Бедные ученики... Я бы тоже пропускал.

А теперь серьезно: как называются таблицы, т.е. как-то одинаково (t1, t2, ... ) или нет?
5 мар 13, 16:39    [14015632]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить поля в таблицах  [new]
94
Member

Откуда:
Сообщений: 37
Jonny540, таблицы, почти одинаково table1,table2... и т.д. 12 таблиц
5 мар 13, 16:42    [14015656]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить поля в таблицах  [new]
Jonny540
Member

Откуда:
Сообщений: 727
94
Jonny540, таблицы, почти одинаково table1,table2... и т.д. 12 таблиц
Названия полей одинаковы во всех таблицах?
5 мар 13, 16:45    [14015684]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить поля в таблицах  [new]
94
Member

Откуда:
Сообщений: 37
Jonny540, Да, абсолютно одинаковы
5 мар 13, 16:45    [14015690]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить поля в таблицах  [new]
Jonny540
Member

Откуда:
Сообщений: 727
94
у меня 277 столбцов
Это точно таблицы фокса?
5 мар 13, 16:59    [14015800]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить поля в таблицах  [new]
94
Member

Откуда:
Сообщений: 37
Jonny540, да, таблицы в формате DBF
5 мар 13, 17:57    [14016150]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить поля в таблицах  [new]
sg12
Member

Откуда:
Сообщений: 454
94
PaulWist, Это ведь легче вручную считать чем так вводить, у меня 277 столбцов и 180 строк.

Можно сделать такое:
Пропускать во всех таблицах первую строку, и первый столбец, остальное через VAL() преобразовывать в числовые и складывать? Если да, то как?


Не лишнее пояснение для любителей SUM().

Чем вызвана такая странная необходимость в такой первой строке?
5 мар 13, 18:10    [14016220]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить поля в таблицах  [new]
94
Member

Откуда:
Сообщений: 37
sg12, там фамилии учеников будут подряд. Поэтому
5 мар 13, 18:15    [14016237]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить поля в таблицах  [new]
sg12
Member

Откуда:
Сообщений: 454
94
sg12, там фамилии учеников будут подряд. Поэтому


В базах данных обычно фамилии выводят в отдельную таблицу, а числовой учет ведется в числовых полях.
А у вас это строка как шапка, необходимости в ней нет.
Насколько можно вас понять, вы dbf-таблицы просто используете для наглядности, примерно как в EXCEL?

Цикл по таблицам в вашем случае можно организовать примерно так:
lcTable = 'table1,table2, ...,table12' && Список таблиц
FOR i = 1 TO GETWORDCOUNT(lcTable,',')
lcTab = GETWORDNUM(lcTable,i,',') && Очередная таблица
...
ENDFOR
5 мар 13, 18:45    [14016325]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить поля в таблицах  [new]
94
Member

Откуда:
Сообщений: 37
sg12, да, для наглядности, но там таких несколько строк, которые являются шапками. Ученик, Класс, Учитель. Это строки которые будут друг под другом. полную версию придется привести. Вот ниже на картинке. Примерные поля. возможно еще одно поле добавится в виде шапки к полям, но пока что для таких таблиц хотелось бы понять как суммировать
5 мар 13, 18:52    [14016357]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить поля в таблицах  [new]
94
Member

Откуда:
Сообщений: 37
sg12, не могли бы вы для 3-4 таблиц показать пример?
5 мар 13, 18:54    [14016366]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить поля в таблицах  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
94
у меня 277 столбцов и 180 строк.

Системные ограничения FoxPro - не более 254 (255) полей (столбцов).

Это значит, что в FoxPro Вашу задачу простыми средствами не решить. Даже если Вы сможете открыть эту таблицу в FoxPro Вы ни при каких условиях не сможете увидеть более 254 (255) полей.

Тот факт, что таблица имеет расширение DBF ни о чем не говорит. Форматов файлов DBF - "вагон и маленькая тележка". Какой именно это формат можно посмотреть по значению самого первого (нулевого) байта таблицы

В приведенной ниже таблице перечислены те значения нулевого (первого по порядку) байта DBF-таблицы с которыми FoxPro может работать напрямую без дополнительных драйверов и преобразований

Байт Тип таблицы DBF
0x02FoxBASE:
0x03 FoxBASE+/Dbase III plus no memo:
0x30Visual FoxPro:
0x31Visual FoxPro autoincrement enabled:
0x32Visual FoxPro Varchar Varbinary or Blob-enabled:
0x43dBASE IV SQL table files no memo:
0x63dBASE IV SQL system files no memo:
0x83FoxBASE+/dBASE III PLUS with memo:
0x8BdBASE IV with memo:
0xCBdBASE IV SQL table files with memo:
0xF5FoxPro 2.x (or earlier) with memo:
0xFBFoxBASE


Если Ваши DBF-таблицы имеют значение нулевого байта отличное от указанного в этой таблицы, то лучше Вам использовать Excel для суммирования. Тем более Вы крайне невнятно описали постановку задачи.
5 мар 13, 19:37    [14016471]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить поля в таблицах  [new]
Dima T
Member

Откуда:
Сообщений: 15301
94
Это ведь легче вручную считать чем так вводить, у меня 277 столбцов и 180 строк.

Так это не таблицы, а какие-то листы экселя. Подозреваю что из экселя они и появились. Может экселем и обсчитать если это разово надо? Так быстрее всего будет.

По-хорошему надо сначала таблицы нормализовать, т.е. свести все к одной таблице:
Предмет, Ученик, Кол-во пропусков.
а потом уже считать.
5 мар 13, 19:37    [14016472]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить поля в таблицах  [new]
94
Member

Откуда:
Сообщений: 37
Dima T, нет, это не экзелем посчитано, на днях обсуждалась тема кто-то тут писал создание подобной таблицы, я скопировала этот код и для своего примера поля и таблицы переделала. Сейчас я дам вам ссылку на этот паблик вот кстати, и сегодня было обсуждение этой темы: https://www.sql.ru/forum/actualthread.aspx?tid=1008720 . Вот я получила такую же таблицу но у меня таких 12. И нужно сложить их всех.
5 мар 13, 19:49    [14016499]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить поля в таблицах  [new]
94
Member

Откуда:
Сообщений: 37
Dima T, вот в той теме было то что мне надо сделать тоже, но мне еще нужно и сложить такие таблицы которых 12 штук. И это надо не разово, а каждый год чтобы делалось
5 мар 13, 19:52    [14016504]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3 4   вперед  Ctrl      все
Все форумы / FoxPro, Visual FoxPro Ответить