Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как сделать выборку / 10 сообщений из 10, страница 1 из 1
01.06.2006, 12:35
    #33765626
karpi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать выборку
Добрый день!
Есть таблица с полями Name1 и Name2. Из этой таблицы мне необходимо сделать выборку только тех записей, у которых значения полей Name1+Name2 совпадают.
Спасибо!
...
Рейтинг: 0 / 0
01.06.2006, 12:44
    #33765667
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать выборку
С чем совпадают значениия полей Name1+Name2 ?
С уважением, Алексей
...
Рейтинг: 0 / 0
01.06.2006, 12:49
    #33765691
karpi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать выборку
Например, таблица:
Иванов Иван
Петров Петр
Иванов Иван
Васильев Василий
Васильев Василий

Значит должны быть отобраны все записи где есть Иванов Иван, Васильев Василий
...
Рейтинг: 0 / 0
01.06.2006, 12:50
    #33765693
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать выборку
select * from MyTableName where Name1=Name2
...
Рейтинг: 0 / 0
01.06.2006, 12:52
    #33765701
Vladimir410
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать выборку
наверное совпадают друг с другом, тогда
Код: plaintext
1.
SELECT * FROM таблица WHERE Name1==Name2
...
Рейтинг: 0 / 0
01.06.2006, 12:56
    #33765719
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать выборку
karpiНапример, таблица:
Иванов Иван
Петров Петр
Иванов Иван
Васильев Василий
Васильев Василий

Значит должны быть отобраны все записи где есть Иванов Иван, Васильев Василий


Читай , думай, делай вывода
...
Рейтинг: 0 / 0
01.06.2006, 12:57
    #33765723
karpi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать выборку
Может быть я неправильно задал вопрос.
Иванов Иван
Петров Петр
Иванов Иван
Васильев Василий
Васильев Василий
Васильев Василий
Васильев Василий

1 и 3 запись совпадают, 4,5,6,7 совпадают, значит они-то и попадут выборку. Т.е. выборка будет без Петров Петр
...
Рейтинг: 0 / 0
01.06.2006, 13:08
    #33765772
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать выборку
Для такой операции необходимо иметь PK (первичный ключ) на таблицу (ID), что бы, хотя бы, отличить одну запись с одинаковыми Name1 и Name2 от другой
Код: plaintext
1.
2.
SELECT a.Name1, a.Name2, a.ID AS ID1, b.ID AS ID2
FROM Table a INNER JOIN Table b ON a.Name1 = b.Name1 AND a.Name2 = b.Name2
AND a.ID > b.ID2

С уважением, Алексей
...
Рейтинг: 0 / 0
01.06.2006, 13:10
    #33765786
Станислав C.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать выборку
karpiДобрый день!
Есть таблица с полями Name1 и Name2. Из этой таблицы мне необходимо сделать выборку только тех записей, у которых значения полей Name1+Name2 совпадают.
Спасибо!
Надо выражаться понятнее... Если вы имеете в виду двойные записи (дубликаты), то надо сделать примерно следующее:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
*  1 . Узнаем количество дубликатов
select Name1+name2 as vir, count(*) as cnt ;
from tablename;
group by Name1,Name2
having cnt> 1 ;
into cursor query nofilter

*  2 . Выделяем все записи-"дубликаты"
select * from tablename;
where name1+name2 in (select vir from query) ;
into cursor rezultat nofilter

В запросах возможны ошибки (не проверял), но смысл, я думаю, понятен.
При желании можно два запроса объединить в один...
...
Рейтинг: 0 / 0
01.06.2006, 13:16
    #33765806
Станислав C.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать выборку
Станислав C. karpiДобрый день!
Есть таблица с полями Name1 и Name2. Из этой таблицы мне необходимо сделать выборку только тех записей, у которых значения полей Name1+Name2 совпадают.
Спасибо!
Надо выражаться понятнее... Если вы имеете в виду двойные записи (дубликаты), то надо сделать примерно следующее:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
*  1 . Узнаем количество дубликатов
select Name1+name2 as vir, count(*) as cnt ;
from tablename;
group by Name1,Name2
having cnt> 1 ;
into cursor query nofilter

*  2 . Выделяем все записи-"дубликаты"
select * from tablename;
where name1+name2 in (select vir from query) ;
into cursor rezultat nofilter

В запросах возможны ошибки (не проверял), но смысл, я думаю, понятен.
При желании можно два запроса объединить в один...
Как более хороший вариант:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
*  1 . Узнаем количество дубликатов
select Name1,name2, count(*) as cnt ;
from tablename;
group by Name1,Name2
having cnt> 1 ;
into cursor query nofilter

*  2 . Выделяем все записи-"дубликаты"
select a.* from tablename a,query b;
where a.name1=b.name1 and a.name2=b.name2;
into cursor rezultat nofilter
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как сделать выборку / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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