Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как сложить поля в таблицах / 25 сообщений из 83, страница 1 из 4
05.03.2013, 15:46
    #38174796
94
94
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сложить поля в таблицах
Всем приветик. Есть 12 таблиц с одинаковыми полями типа так:

ID (содержит названия предметов), st1,st2,st3.... st200 (имена учеников) а на пересечении пропуски. Как сложить все пропуски в такой таблице. Пример таблицы на картинке показан.
...
Рейтинг: 0 / 0
05.03.2013, 16:12
    #38174831
94
94
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сложить поля в таблицах
Никто не знает да? :-(
...
Рейтинг: 0 / 0
05.03.2013, 16:16
    #38174839
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сложить поля в таблицах
94Никто не знает да? :-(

Код: sql
1.
select sum(st1), sum(st2) ,.... from tabla
...
Рейтинг: 0 / 0
05.03.2013, 16:17
    #38174843
94
94
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сложить поля в таблицах
PaulWist, ну так мне же не в одной таблице надо, а каждое соответствующее поле сложить в 12-ти таблицах.

Для примера можно в трех показать дальше я сама
...
Рейтинг: 0 / 0
05.03.2013, 16:18
    #38174845
94
94
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сложить поля в таблицах
PaulWist, поле st1 таблицы tab1 с полем st2 таблицы tab2 и т.д.
...
Рейтинг: 0 / 0
05.03.2013, 16:24
    #38174854
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сложить поля в таблицах
94PaulWist, поле 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
...
Рейтинг: 0 / 0
05.03.2013, 16:27
    #38174859
94
94
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сложить поля в таблицах
PaulWist, Это ведь легче вручную считать чем так вводить, у меня 277 столбцов и 180 строк.

Можно сделать такое:
Пропускать во всех таблицах первую строку, и первый столбец, остальное через VAL() преобразовывать в числовые и складывать? Если да, то как?
...
Рейтинг: 0 / 0
05.03.2013, 16:31
    #38174864
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сложить поля в таблицах
94,

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



может
поле st1 таблицы tab1 с полем st1 таблицы tab2 .
поле st2 таблицы tab1 с полем st2 таблицы tab2
....................
...
Рейтинг: 0 / 0
05.03.2013, 16:33
    #38174870
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сложить поля в таблицах
94,

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

вы бы лучше базу выложили, а то не понять что с чем складывать
...
Рейтинг: 0 / 0
05.03.2013, 16:33
    #38174873
94
94
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сложить поля в таблицах
ПЕНСИОНЕРКА, Да да да, извините за ошибку, просто весь день мучаюсь голова кругом
...
Рейтинг: 0 / 0
05.03.2013, 16:39
    #38174883
Jonny540
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сложить поля в таблицах
94... у меня 277 столбцов и 180 строк. Где ж Вы столько предметов взяли? Бедные ученики... Я бы тоже пропускал.

А теперь серьезно: как называются таблицы, т.е. как-то одинаково (t1, t2, ... ) или нет?
...
Рейтинг: 0 / 0
05.03.2013, 16:42
    #38174890
94
94
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сложить поля в таблицах
Jonny540, таблицы, почти одинаково table1,table2... и т.д. 12 таблиц
...
Рейтинг: 0 / 0
05.03.2013, 16:45
    #38174900
Jonny540
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сложить поля в таблицах
94Jonny540, таблицы, почти одинаково table1,table2... и т.д. 12 таблицНазвания полей одинаковы во всех таблицах?
...
Рейтинг: 0 / 0
05.03.2013, 16:45
    #38174901
94
94
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сложить поля в таблицах
Jonny540, Да, абсолютно одинаковы
...
Рейтинг: 0 / 0
05.03.2013, 16:59
    #38174931
Jonny540
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сложить поля в таблицах
94 у меня 277 столбцов Это точно таблицы фокса?
...
Рейтинг: 0 / 0
05.03.2013, 17:57
    #38175026
94
94
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сложить поля в таблицах
Jonny540, да, таблицы в формате DBF
...
Рейтинг: 0 / 0
05.03.2013, 18:10
    #38175058
sg12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сложить поля в таблицах
94PaulWist, Это ведь легче вручную считать чем так вводить, у меня 277 столбцов и 180 строк.

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

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

Чем вызвана такая странная необходимость в такой первой строке?
...
Рейтинг: 0 / 0
05.03.2013, 18:15
    #38175066
94
94
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сложить поля в таблицах
sg12, там фамилии учеников будут подряд. Поэтому
...
Рейтинг: 0 / 0
05.03.2013, 18:45
    #38175105
sg12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сложить поля в таблицах
94sg12, там фамилии учеников будут подряд. Поэтому

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

Цикл по таблицам в вашем случае можно организовать примерно так:
lcTable = 'table1,table2, ...,table12' && Список таблиц
FOR i = 1 TO GETWORDCOUNT(lcTable,',')
lcTab = GETWORDNUM(lcTable,i,',') && Очередная таблица
...
ENDFOR
...
Рейтинг: 0 / 0
05.03.2013, 18:52
    #38175116
94
94
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сложить поля в таблицах
sg12, да, для наглядности, но там таких несколько строк, которые являются шапками. Ученик, Класс, Учитель. Это строки которые будут друг под другом. полную версию придется привести. Вот ниже на картинке. Примерные поля. возможно еще одно поле добавится в виде шапки к полям, но пока что для таких таблиц хотелось бы понять как суммировать
...
Рейтинг: 0 / 0
05.03.2013, 18:54
    #38175120
94
94
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сложить поля в таблицах
sg12, не могли бы вы для 3-4 таблиц показать пример?
...
Рейтинг: 0 / 0
05.03.2013, 19:37
    #38175158
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сложить поля в таблицах
94у меня 277 столбцов и 180 строк.
Системные ограничения FoxPro - не более 254 (255) полей (столбцов).

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

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

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

Байт Тип таблицы DBF0x02FoxBASE: 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 для суммирования. Тем более Вы крайне невнятно описали постановку задачи.
...
Рейтинг: 0 / 0
05.03.2013, 19:37
    #38175159
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сложить поля в таблицах
94Это ведь легче вручную считать чем так вводить, у меня 277 столбцов и 180 строк.
Так это не таблицы, а какие-то листы экселя. Подозреваю что из экселя они и появились. Может экселем и обсчитать если это разово надо? Так быстрее всего будет.

По-хорошему надо сначала таблицы нормализовать, т.е. свести все к одной таблице:
Предмет, Ученик, Кол-во пропусков.
а потом уже считать.
...
Рейтинг: 0 / 0
05.03.2013, 19:49
    #38175169
94
94
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сложить поля в таблицах
Dima T, нет, это не экзелем посчитано, на днях обсуждалась тема кто-то тут писал создание подобной таблицы, я скопировала этот код и для своего примера поля и таблицы переделала. Сейчас я дам вам ссылку на этот паблик вот кстати, и сегодня было обсуждение этой темы: http://www.sql.ru/forum/actualthread.aspx?tid=1008720 . Вот я получила такую же таблицу но у меня таких 12. И нужно сложить их всех.
...
Рейтинг: 0 / 0
05.03.2013, 19:52
    #38175171
94
94
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сложить поля в таблицах
Dima T, вот в той теме было то что мне надо сделать тоже, но мне еще нужно и сложить такие таблицы которых 12 штук. И это надо не разово, а каждый год чтобы делалось
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как сложить поля в таблицах / 25 сообщений из 83, страница 1 из 4
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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