Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проверка одинаковых значений в таблице [D7, XP]


TimScorp ©   (2006-03-22 05:50:00) 

Доброго времени суток!!!

Как можно проверить есть ли  в таблице в Acess поля с одинаковыми значениями, вывести их форму и чтобы не было зеркального отображения???

С уважением TimScorp.


SergP.   (2006-03-22 18:18:00) [1]


SELECT a.name2, a.adres, b.name, b.adres
FROM (SELECT min(name) as name2, adres
FROM tbl
GROUP BY adres
HAVING count(*)>1) AS a, tbl AS b
WHERE a.adres=b.adres and a.name2<>b.name


Sergey13   (2006-03-22 13:29:00) [2]

2[8] TimScorp ©   (22.03.06 09:52)
Над запросом мне думать лень, но тебе необходимо как то выделить одного из "похожих" например по MIN(ID). И к нему уже пристегивать остальных.


Virgo_Style   (2006-03-22 13:23:00) [3]

Ну если нужен только Иванов, так и выбери только его, в чем проблема?)


ivb2001   (2006-03-22 12:20:00) [4]

Может в AddressTBL добавить ORDER by NAME? тогда будут сначала все Ивановы потом Петровы и тд


TimScorp   (2006-03-22 09:52:00) [5]

Получается так:

Иванов, Адрес: ул. Мира, д. 5, кв. 49 - Петров, Адрес: ул. Мира, д. 5, кв. 49
Иванов, Адрес: ул. Мира, д. 5, кв. 49 - Сидоров, Адрес: ул. Мира, д. 5, кв. 49
Петров, Адрес: ул. Мира, д. 5, кв. 49 - Сидоров, Адрес: ул. Мира, д. 5, кв. 49

А нужно чтобы выводило только:

Иванов, Адрес: ул. Мира, д. 5, кв. 49 - Петров, Адрес: ул. Мира, д. 5, кв. 49
Иванов, Адрес: ул. Мира, д. 5, кв. 49 - Сидоров, Адрес: ул. Мира, д. 5, кв. 49

С уважением TimScorp.


Virgo_Style   (2006-03-22 07:55:00) [6]

... WHERE A.ID>B.ID ?


TimScorp   (2006-03-22 07:35:00) [7]

Нужно что бы выводило только:

Иванов, Адрес: ул. Мира, д. 5, кв. 49 - Петров, Адрес: ул. Мира, д. 5, кв. 49
Иванов, Адрес: ул. Мира, д. 5, кв. 49 - Сидоров, Адрес: ул. Мира, д. 5, кв. 49

и все. Как исключить зеркальную проверку???

С уважением TimScorp.


TimScorp   (2006-03-22 07:33:00) [8]

DM.AdresTbl.First;
 while not DM.AdresTbl.Eof do
   begin
     s := QuotedStr ('%'+DM.AdresTblAdres.Text+'%');
     s1 := DM.AdresTblLinkKey.AsString;

     DM.AdresQ.Active := false;
     DM.AdresQ.SQL.Clear;
     DM.AdresQ.SQL.Add('SELECT *');
     DM.AdresQ.SQL.Add('FROM adr');
     DM.AdresQ.SQL.Add('WHERE Adres LIKE ' + s);
     DM.AdresQ.SQL.Add('AND LinkKey ' + s1);
     DM.AdresQ.Active := true;
     DM.AdresQ.First;
     while not DM.AdresQ.Eof do
       begin
         RichEdit1.Lines.Add(DM.AdresTblName.Text + ', Àäðåñ: ' + DM.AdresTblAdres.Text + ' - ' +
                             DM.AdresQName.Text + ', Àäðåñ: ' + DM.AdresQAdres.Text);
         DM.AdresQ.Next;
       end;

     DM.AdresTbl.Next;
   end;


ЮЮ   (2006-03-22 07:26:00) [9]


> То результат будет таким:

Результат чего? Запроса? Вот и прведи его текст - покритикуем
И структуру таблицы. Или там только два поля?

И какой результат нужен?


TimScorp   (2006-03-22 05:59:00) [10]

Петров, Адрес: ул. Мира, д. 5, кв. 49 - Сидоров, Адрес: ул. Мира, д. 5, кв. 49
Сидоров, Адрес: ул. Мира, д. 5, кв. 49 - Иванов, Адрес: ул. Мира, д. 5, кв. 49
Сидоров, Адрес: ул. Мира, д. 5, кв. 49 - Петров, Адрес: ул. Мира, д. 5, кв. 49

Как можно сделать чтобы писалось только один раз??? (Т.е. не было зеркального отображения)

С уважением TimScorp.


TimScorp   (2006-03-22 05:58:00) [11]

То результат будет таким:

Иванов, Адрес: ул. Мира, д. 5, кв. 49 - Петров, Адрес: ул. Мира, д. 5, кв. 49
Иванов, Адрес: ул. Мира, д. 5, кв. 49 - Сидоров, Адрес: ул. Мира, д. 5, кв. 49
Петров, Адрес: ул. Мира, д. 5, кв. 49 - Иванов, Адрес: ул. Мира, д. 5, кв. 49


TimScorp   (2006-03-22 05:56:00) [12]

Например:

Теперь если в таблице данные типа:

Иванов     ул. Мира, д. 5, кв. 49
Петров     ул. Мира, д. 5, кв. 49
Сидоров    ул. Мира, д. 5, кв. 49


Наверх

Титульная страница Поиск, карта сайта Написать письмо