Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Перекрестный запрос в foxpro / 25 сообщений из 25, страница 1 из 1
24.11.2009, 19:18
    #36329340
priamm
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекрестный запрос в foxpro
Здравствуйте!
Вообщем, такая проблема нужно сделать перекрестный запрос в foxpro.Eсть 4 таблицы:grup c полями grup.n_grup,grup.grup;таблица predmet c полями predmet.n_predm,predmet.predm;student c полями student.n_grup,student.n_stud,student.familia;таблица ocenki с полями ocenki.n_stud,ocenki.n_predm,ocenki.ocenka
В запросе нужно , чтобы названиями столбцов были группы,а в столбцах были фамилии студентов.
Конечно я понимаю, что может быть уже надоел своими глупыми вопросами, но все-таки прошу помочь мне и на этот раз.
Спасибо!
...
Рейтинг: 0 / 0
24.11.2009, 20:22
    #36329432
priamm
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекрестный запрос в foxpro
Ну хотя бы какие-нибудь общие соображения как его делать!
...
Рейтинг: 0 / 0
24.11.2009, 20:23
    #36329436
Dag
Dag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекрестный запрос в foxpro
А результат запроса что собой должен представлять?
типа
grup-familia и что еще?
...
Рейтинг: 0 / 0
24.11.2009, 20:43
    #36329465
Dag
Dag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекрестный запрос в foxpro
Включай Cross-Tab Wizard и тренируйся.
Меню Tools-Wizard-All Wizard- Cross-Tab Wizard
...
Рейтинг: 0 / 0
24.11.2009, 20:46
    #36329472
priamm
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекрестный запрос в foxpro
Dag,
Полностью запрос звучит так:
Для конкретного предмета выдать всех неуспевающих, разделив список по группам
я думаю надо первой колонкой номер студента student.n_stud
...
Рейтинг: 0 / 0
24.11.2009, 20:55
    #36329484
Dag
Dag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекрестный запрос в foxpro
Кто такие неуспевающие?
...
Рейтинг: 0 / 0
24.11.2009, 21:03
    #36329493
priamm
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекрестный запрос в foxpro
Dag,
Неуспевающие-- это у которых двойка по предмету
...
Рейтинг: 0 / 0
24.11.2009, 21:21
    #36329508
Dag
Dag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекрестный запрос в foxpro
Код: plaintext
1.
2.
SELECT familia, grup FROM student a, grup b WHERE n_stud IN;
SELECT n_stud FROM ocenki WHERE n_predm=(идентификатор предмета) AND ocenka< 3 );
AND a.n_grup==b.n_grup ORDER BY grup, familia
...
Рейтинг: 0 / 0
24.11.2009, 21:32
    #36329519
Dag
Dag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекрестный запрос в foxpro
Например так
Код: plaintext
1.
2.
SELECT a.familia, b.grup FROM student a, grup b WHERE a.n_stud IN;
(SELECT n_stud FROM ocenki WHERE n_predm= 11  AND ocenka<"3");
AND a.n_group==b.n_grup ORDER BY grup, familia
...
Рейтинг: 0 / 0
24.11.2009, 21:39
    #36329526
priamm
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекрестный запрос в foxpro
Dag,
Выдает ошибку Operator\operand type mistmatch
...
Рейтинг: 0 / 0
24.11.2009, 21:42
    #36329527
Dag
Dag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекрестный запрос в foxpro
Проверь тип поля ocenka (символьный или числовой)
...
Рейтинг: 0 / 0
24.11.2009, 21:48
    #36329534
priamm
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекрестный запрос в foxpro
А если убрать кавычки с оценки, то выдает столбец familia с фамилиями студентов и столбец grup
c названиями групп,а нужно , чтобы имя столбца-название группы и в этом столбце фамилии студентов
...
Рейтинг: 0 / 0
24.11.2009, 22:05
    #36329544
priamm
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекрестный запрос в foxpro
Т.е как нибудь вот так:
stud.n_stud 3П-1 3П-2 3УП-3
1 Иванов
2 Петров
3 Cидоров
4 Антонов
...
Рейтинг: 0 / 0
24.11.2009, 22:09
    #36329552
priamm
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекрестный запрос в foxpro
...
Рейтинг: 0 / 0
24.11.2009, 22:19
    #36329565
Dag
Dag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекрестный запрос в foxpro
Попробуй
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT DISTINCT a.familia, b.grup, c.predm FROM student a, grup b, predmet c, ocenki d;
INTO TABLE c:\tmp.dbf WHERE a.n_stud IN;
(SELECT n_stud FROM ocenki WHERE ocenka< 3 );
AND a.n_group==b.n_grup AND c.n_predm==d.n_predm ORDER BY grup, familia

SELECT TMP.Predm, TMP.Grup, TMP.Familia;
    FROM TMP;
    GROUP BY TMP.Predm, TMP.Grup, TMP.Familia;
    ORDER BY TMP.Predm, TMP.Grup, TMP.Familia;
    INTO CURSOR SYS( 2015 )
DO (_GENXTAB) WITH 'Query',,,,,,,,,.t.
BROWSE NOMODIFY
...
Рейтинг: 0 / 0
25.11.2009, 09:07
    #36329916
quxix
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекрестный запрос в foxpro
priammЗдравствуйте!
Вообщем, такая проблема нужно сделать перекрестный запрос в foxpro.Eсть 4 таблицы:grup c полями grup.n_grup,grup.grup;таблица predmet c полями predmet.n_predm,predmet.predm;student c полями student.n_grup,student.n_stud,student.familia;таблица ocenki с полями ocenki.n_stud,ocenki.n_predm,ocenki.ocenka
В запросе нужно , чтобы названиями столбцов были группы,а в столбцах были фамилии студентов.
Конечно я понимаю, что может быть уже надоел своими глупыми вопросами, но все-таки прошу помочь мне и на этот раз.
Спасибо!
представте нам скрипт создания таблицы и наполните её данными
типа такого
Код: plaintext
1.
2.
3.
create table grup(n_grup numeric( 6 , 2 ),grup varchar( 10 ))
...
insert into grup(n_grup,grup) values( 4 ,'a')
insert into grup(n_grup,grup) values( 5 ,'b')
вопрос: ...
...
Рейтинг: 0 / 0
25.11.2009, 10:59
    #36330202
priamm
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекрестный запрос в foxpro
Dag,
...
Рейтинг: 0 / 0
25.11.2009, 11:08
    #36330240
priamm
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекрестный запрос в foxpro
Dag,
А должно быть примерно так
...
Рейтинг: 0 / 0
25.11.2009, 11:11
    #36330258
priamm
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекрестный запрос в foxpro
quxix,
Таблицу я создаю через конструктор таблиц,а данные добавляю через форму
INSERT INTO grup(n_grup,grup) values(VAL(thisform.text1.Value),thisform.text2.Value)
...
Рейтинг: 0 / 0
25.11.2009, 13:35
    #36330777
quxix
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекрестный запрос в foxpro
priammquxix,
Таблицу я создаю через конструктор таблиц,а данные добавляю через форму
INSERT INTO grup(n_grup,grup) values(VAL(thisform.text1.Value),thisform.text2.Value)

Priamm,когда задают вопрос,как правило хорошим тоном является наличие скрипта табличек,данные и внятно сформулированный вопрос для остальных,вот пример: -тогда ответ будет максимально быстрым и точным.

/ну и что что в конструкторе,сделайте курсоры,набейте в них тестовых данных и выложите здесь,чтобы люди могли смоделировать ситуацию у себя на компьютерах.
...
Рейтинг: 0 / 0
25.11.2009, 13:41
    #36330799
quxix
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекрестный запрос в foxpro
priamm
В запросе нужно , чтобы названиями столбцов были группы ,а в столбцах были фамилии студентов.

В фоксе такого класиичеким запросом не получишь,если только не известно количество и название групп,ведь групп м.б. сколько угодно и тогда количество столбцов будет динамическим.
...
Рейтинг: 0 / 0
25.11.2009, 14:39
    #36330963
priamm
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекрестный запрос в foxpro
quxix
В фоксе такого класиичеким запросом не получишь,если только не известно количество и название групп,ведь групп м.б. сколько угодно и тогда количество столбцов будет динамическим.
Тогда объясните мне кто-нибудь,как тогда вывести список неуспевающих,разделив список по группам?И как сделать запрос в foxpro динамическим?
...
Рейтинг: 0 / 0
25.11.2009, 14:58
    #36331027
quxix
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекрестный запрос в foxpro
priammquxix
В фоксе такого класиичеким запросом не получишь,если только не известно количество и название групп,ведь групп м.б. сколько угодно и тогда количество столбцов будет динамическим.
Тогда объясните мне кто-нибудь,как тогда вывести список неуспевающих,разделив список по группам?И как сделать запрос в foxpro динамическим?
использовать процедурный язык+sql+курсоры например

если к примеру 260 групп- и у всех есть неуспевающие студенты -вы так и будете выводите 260 столбцов??? Тем более фокс этого не позволит.
Предлагаю создать табличку неуспевающих студентов
Студент может входить только в одну группу?
Предлагаю в этом случае вывести список неуспевающих студентов и название группы:
studentgrupsИванов гр1Петров гр2Сидоров гр1
...
Рейтинг: 0 / 0
25.11.2009, 15:00
    #36331034
Перекрестный запрос в foxpro
priammquxix
В фоксе такого класиичеким запросом не получишь,если только не известно количество и название групп,ведь групп м.б. сколько угодно и тогда количество столбцов будет динамическим.
Тогда объясните мне кто-нибудь,как тогда вывести список неуспевающих,разделив список по группам?
Может так:

Список неуспевающих

Группа: МЕД-123
Иванов Ф.А
Петров И.А
Сидоров В.П

Группа МЕД-231
Иванов А.А.
Петров А.П
Сидоров В.П.
...

Тогда это все решается одним простым отчетом (Report' ом), построенным на основе запроса по неуспевающим студентам
...
Рейтинг: 0 / 0
25.11.2009, 15:19
    #36331111
priamm
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекрестный запрос в foxpro
quxix,
Спасибо,попробую сделать так, а также спасибо всем, кто помогал мне разбираться с этим вопросом.Тему можно закрывать
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Перекрестный запрос в foxpro / 25 сообщений из 25, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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