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

в итоге пустой файл получается. Почему?
...
Рейтинг: 0 / 0
16.06.2009, 12:54
    #36043298
GermanGM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос
Mangust72, SET ANSI OFF требуется
...
Рейтинг: 0 / 0
16.06.2009, 13:03
    #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
16.06.2009, 13:03
    #36043329
Mangust72
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос
GermanGMMangust72, SET ANSI OFF требуется
Если б я понимала что это, я не задавала вообще вопросов здесь....
...
Рейтинг: 0 / 0
16.06.2009, 13:07
    #36043336
Mangust72
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос
9 фокс
...
Рейтинг: 0 / 0
16.06.2009, 13:13
    #36043353
GermanGM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос
Mangust72, если вы выполняете запрос в "ручном" режиме, просто введите предварительно эту команду (set ansi off). Потом, при желании, разберетесь... Первый ответный пост уже содержит решение Вашей проблемы
...
Рейтинг: 0 / 0
16.06.2009, 13:21
    #36043385
Mangust72
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос
GermanGMMangust72, если вы выполняете запрос в "ручном" режиме, просто введите предварительно эту команду (set ansi off). Потом, при желании, разберетесь... Первый ответный пост уже содержит решение Вашей проблемы

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

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

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

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

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

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

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


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

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

А если надо другое - то пишите, что надо в результате то получить?
...
Рейтинг: 0 / 0
16.06.2009, 14:37
    #36043687
Mangust72
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос
Нужны поля fromid, toid, name,stage_a,spid,stage_b при условии, если code=4020 и 7015p для каждого человека
...
Рейтинг: 0 / 0
16.06.2009, 14:41
    #36043697
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос
если нет желание править запрос, то
поможет установка set enginebehavior 70
...
Рейтинг: 0 / 0
16.06.2009, 15:02
    #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
16.06.2009, 15:07
    #36043779
Mangust72
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос
прошелмимоесли нет желание править запрос, то
поможет установка set enginebehavior 70
Спасибо это помогло, но не фильтруется запрос по code, вылезли все записи
...
Рейтинг: 0 / 0
16.06.2009, 15:33
    #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
16.06.2009, 15:42
    #36043890
Peisov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос
Mangust72А зачем при объединении таблиц нужно "AND a.code <> b.code"?

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

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

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

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


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