powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / вопрос
25 сообщений из 30, страница 1 из 2
вопрос
    #36043104
Mangust72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, пож, какой запрос написать, чтобы вытащить записи у кого есть только code=4020 и 7015p для каждого человека?
...
Рейтинг: 0 / 0
вопрос
    #36043152
Peisov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SELECT toid,name
FROM vop
WHERE INLIST(code ,'4020' ,'7015p')
GROUP BY toid,name
HAVING COUNT(*) > 1
...
Рейтинг: 0 / 0
вопрос
    #36043162
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
Select * ;
   from c:\vop ;
   where inlist( code, "4020", "7015p")
...
Рейтинг: 0 / 0
вопрос
    #36043250
Mangust72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PeisovSELECT toid,name
FROM vop
WHERE INLIST(code ,'4020' ,'7015p')
GROUP BY toid,name
HAVING COUNT(*) > 1

в итоге пустой файл получается. Почему?
...
Рейтинг: 0 / 0
вопрос
    #36043298
GermanGM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mangust72, SET ANSI OFF требуется
...
Рейтинг: 0 / 0
вопрос
    #36043328
Peisov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mangust72PeisovSELECT toid,name
FROM vop
WHERE INLIST(code ,'4020' ,'7015p')
GROUP BY toid,name
HAVING COUNT(*) > 1

в итоге пустой файл получается. Почему?

1. Какая версия фокса? У меня 9.

2. А вариант с WHERE INLIST(code ,'4020 ' ,'7015p ') что даст?
...
Рейтинг: 0 / 0
вопрос
    #36043329
Mangust72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GermanGMMangust72, SET ANSI OFF требуется
Если б я понимала что это, я не задавала вообще вопросов здесь....
...
Рейтинг: 0 / 0
вопрос
    #36043336
Mangust72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
9 фокс
...
Рейтинг: 0 / 0
вопрос
    #36043353
GermanGM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mangust72, если вы выполняете запрос в "ручном" режиме, просто введите предварительно эту команду (set ansi off). Потом, при желании, разберетесь... Первый ответный пост уже содержит решение Вашей проблемы
...
Рейтинг: 0 / 0
вопрос
    #36043385
Mangust72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GermanGMMangust72, если вы выполняете запрос в "ручном" режиме, просто введите предварительно эту команду (set ansi off). Потом, при желании, разберетесь... Первый ответный пост уже содержит решение Вашей проблемы

ввела, но ничего не изменилось.
...
Рейтинг: 0 / 0
вопрос
    #36043390
Peisov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GermanGMMangust72, SET ANSI OFF требуется

Это зачем?
...
Рейтинг: 0 / 0
вопрос
    #36043400
Peisov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mangust72GermanGMMangust72, если вы выполняете запрос в "ручном" режиме, просто введите предварительно эту команду (set ansi off). Потом, при желании, разберетесь... Первый ответный пост уже содержит решение Вашей проблемы

ввела, но ничего не изменилось.

Вы второй выриант where попробовали?

Запрос провряется именно на той таблице, которую Вы выложили или на другой?
...
Рейтинг: 0 / 0
вопрос
    #36043433
Mangust72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И к этой таблице пробовала не помогает.
...
Рейтинг: 0 / 0
вопрос
    #36043442
Peisov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А такое что-нибудь возвращает?

SELECT name
FROM vop
WHERE INLIST(code ,'4020' ,'7015p')
GROUP BY name
HAVING COUNT(*) > 1
...
Рейтинг: 0 / 0
вопрос
    #36043463
Mangust72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, вот так работает.
А можно это сделать в фоксе 9 со всеми полями при операции group by? В 6 версии это возможно было сделать...
...
Рейтинг: 0 / 0
вопрос
    #36043485
Peisov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mangust72Да, вот так работает.
Станно. вроде как для одного и того же человека код toid должен быть одним и тем же. И группировка должна работать номмально.

Во всяком случае в выложенной табличке это так


А можно это сделать в фоксе 9 со всеми полями при операции group by? В 6 версии это возможно было сделать...
Не понял...
...
Рейтинг: 0 / 0
вопрос
    #36043546
Mangust72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В данном запросе выводиться только одно поле, а мне нужно например поле с ФИО и еще другие.
...
Рейтинг: 0 / 0
вопрос
    #36043566
Peisov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mangust72В данном запросе выводиться только одно поле, а мне нужно например поле с ФИО и еще другие.

Ха! Что просили - то и получили!

А если надо другое - то пишите, что надо в результате то получить?
...
Рейтинг: 0 / 0
вопрос
    #36043687
Mangust72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужны поля fromid, toid, name,stage_a,spid,stage_b при условии, если code=4020 и 7015p для каждого человека
...
Рейтинг: 0 / 0
вопрос
    #36043697
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если нет желание править запрос, то
поможет установка set enginebehavior 70
...
Рейтинг: 0 / 0
вопрос
    #36043768
Peisov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mangust72,


Код: plaintext
1.
2.
3.
SELECT a.*;
from vop as a;
left join vop as b on b.name = a.name AND a.code <> b.code;
where INLIST(a.code ,'4020' ,'7015p') .and. INLIST(b.code ,'4020' ,'7015p')
...
Рейтинг: 0 / 0
вопрос
    #36043779
Mangust72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
прошелмимоесли нет желание править запрос, то
поможет установка set enginebehavior 70
Спасибо это помогло, но не фильтруется запрос по code, вылезли все записи
...
Рейтинг: 0 / 0
вопрос
    #36043865
Mangust72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PeisovMangust72,


Код: plaintext
1.
2.
3.
SELECT a.*;
from vop as a;
left join vop as b on b.name = a.name AND a.code <> b.code;
where INLIST(a.code ,'4020' ,'7015p') .and. INLIST(b.code ,'4020' ,'7015p')


Супер, все вышло! А зачем при объединении таблиц нужно "AND a.code <> b.code"?
...
Рейтинг: 0 / 0
вопрос
    #36043890
Peisov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mangust72А зачем при объединении таблиц нужно "AND a.code <> b.code"?

Что бы не обединять строку саму с собой.

Поробуйте убрать и посмотрите результат!
...
Рейтинг: 0 / 0
вопрос
    #36044010
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PeisovMangust72А зачем при объединении таблиц нужно "AND a.code <> b.code"?

Что бы не обединять строку саму с собой.

Поробуйте убрать и посмотрите результат!
Но тогда надо бы лучше "AND a.code > b.code"
Иначе (одна запись сама с собой всегда совпадет) на выходе две записи.
С уважением, Алексей.
...
Рейтинг: 0 / 0
25 сообщений из 30, страница 1 из 2
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / вопрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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