powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / проблема с Group by
15 сообщений из 15, страница 1 из 1
проблема с Group by
    #39295430
Кима
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Сверяю 2 таблицы, в 1ой проставил индикаторы по признакам учета, тоесть если человек инвалид - то 1, остальные признаки - 0. Мне нужно исключить инвалидов, далее код:


SELECT * FROM pf29.dbf WHERE EXISTS (SELECT * FROM s2.dbf b WHERE a.O6 = b.FM AND a.O7 = b.IM AND a.O8 = b.OT AND a.O10 = b.DR AND b.INV1 = 0);
group by pf29.O6, pf29.O7, pf29.O8, pf29.O10;
INTO TABLE NEW29


pf29.O6 - Фамилия, pf29.O7 - Имя, pf29.O8 - Отчество, pf29.O10 - дата рождения, INV1 - индикатор (0 или 1). Сначала group by совсем отказывался работать, ошибка исчезла после добавления SET ENGINEBEHAVIOR 70

теперь на выходе только пустые поля, где я промахнулся? :(
...
Рейтинг: 0 / 0
проблема с Group by
    #39295433
Кима
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кажется нашел косяк, пока мучился с group by потерял в SELECT "a"
...
Рейтинг: 0 / 0
проблема с Group by
    #39295450
T1gRa_NT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SET ENGINEBEHAVIOR 70 - в 7 версии нет четкой проверки на select, в 9 поправили, так что увлекаться без знаний не советую!
А не работает из-за выборки всех полей: SELECT * FROM
Дабы сработало в group by перечислите все поля таблицы pf29.
...
Рейтинг: 0 / 0
проблема с Group by
    #39295460
Кима
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
T1gRa_NT,

SELECT * FROM pf29.dbf a WHERE EXISTS (SELECT * FROM s2.dbf b WHERE a.O6 = b.FM AND a.O7 = b.IM AND a.O8 = b.OT AND a.O10 = b.DR AND b.INV1 = 0);
group by a.O6, a.O7, a.O8, a.O10;
INTO TABLE NEW30

Так все работает, как только убираю SET ENGINEBEHAVIOR 70 - ошибка.
...
Рейтинг: 0 / 0
проблема с Group by
    #39295472
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КимаТак все работает, как только убираю SET ENGINEBEHAVIOR 70 - ошибка.
Работает потому что SET ENGINEBEHAVIOR 70 это разрешение работать криво

Напиши явно список используемых полей вместо звездочки
Код: sql
1.
2.
3.
SELECT a.O6, a.O7, a.O8, a.O10 FROM pf29.dbf a WHERE EXISTS (SELECT * FROM s2.dbf b WHERE a.O6 = b.FM AND a.O7 = b.IM AND a.O8 = b.OT AND a.O10 = b.DR AND b.INV1 = 0);
group by a.O6, a.O7, a.O8, a.O10;
INTO TABLE NEW30
...
Рейтинг: 0 / 0
проблема с Group by
    #39295484
Кима
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,
в таблице pf29 около 50 столбцов, неужели обязательно все писать в group by если я хочу объединить только по ФИО и дате рождения?
...
Рейтинг: 0 / 0
проблема с Group by
    #39295490
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Теорию читал про GROUP BY ?

Допустим у тебя таблица
A B1 21 3
И запрос
Код: sql
1.
select * from MyTable group by A


Что по твоему должно получиться в результате такого запроса?

Может тебе вовсе не GROUP BY надо?
...
Рейтинг: 0 / 0
проблема с Group by
    #39295499
Кима
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,

Хмм, вот тут как то не правильно получается, это да, то-есть все строки где есть в столбце А цифра 1 объединятся в 1.
у меня же немного по другому получается, как я уже писал выше использую потому что у меня одна и таже запись дублируется 3-5 раз, если признаков несколько и я хочу их сгруппировать, то-есть там где ФИО и Дата рождения одинаковые, там и последующие столбцы будут тоже одинаковыми.
...
Рейтинг: 0 / 0
проблема с Group by
    #39295503
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для этого есть DISTINCT
Код: sql
1.
2.
SELECT DISTINCT * FROM pf29.dbf WHERE EXISTS (SELECT * FROM s2.dbf b WHERE a.O6 = b.FM AND a.O7 = b.IM AND a.O8 = b.OT AND a.O10 = b.DR AND b.INV1 = 0);
INTO TABLE NEW29
...
Рейтинг: 0 / 0
проблема с Group by
    #39295837
Кима
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,
Я пробовал так, все равно выходят все записи с дубликатами, с груп бай вроде бы все в порядке =\
...
Рейтинг: 0 / 0
проблема с Group by
    #39295918
asdor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кима,

GrpoupBy тебя просто обманывает с SET ENGINEBEHAVIOR 70
Не зря, когда выходишь из совместимости с 7кой, показывает ошибку.
Если разовая операция, разберешься. Если она для юзеров, и используется в БП, лучше внимательно посмотреть что надо. Иначе нарвешься...
...
Рейтинг: 0 / 0
проблема с Group by
    #39295919
asdor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КимаDima T,
Я пробовал так, все равно выходят все записи с дубликатами, с груп бай вроде бы все в порядке =\

ID есть у таблицы?
...
Рейтинг: 0 / 0
проблема с Group by
    #39295926
Кима
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
asdor, Мне нужно просто сделать один раз выборку.
ID таблицы походу нет(Возможно я с чем то путаю ID таблицы), но в первых колонках нет никакой нумерации записей аля 1-2-3-...
...
Рейтинг: 0 / 0
проблема с Group by
    #39296033
T1gRa_NT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КимаЯ пробовал так, все равно выходят все записи с дубликатами, с груп бай вроде бы все в порядке =\

значит какое-то значение из 50 полей отличается, возможно где-то есть ID записи.
Вам советуют выбрать только нужные для дальнейшей работы поля, не все 50! но если нужны все тогда думайте и смотрите как еще отфильтровать полученные результаты.
...
Рейтинг: 0 / 0
проблема с Group by
    #39296040
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КимаDima T,
Я пробовал так, все равно выходят все записи с дубликатами, с груп бай вроде бы все в порядке =\
Значит не все остальные столбцы одинаковые. Добавь сортировку чтобы дубли рядом встали
Код: sql
1.
order by pf29.O6, pf29.O7, pf29.O8, pf29.O10;


и поищи такие записи. Вполне может оказаться что некоторые дубли нужны.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / проблема с Group by
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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