Текущий архив: 2006.04.09;
Скачать: CL | DM;
ВнизПроверка одинаковых значений в таблице Найти похожие ветки
← →
TimScorp © (2006-03-22 05:50) [0]Доброго времени суток!!!
Как можно проверить есть ли в таблице в Acess поля с одинаковыми значениями, вывести их форму и чтобы не было зеркального отображения???
С уважением TimScorp.
← →
TimScorp © (2006-03-22 05:56) [1]Например:
Теперь если в таблице данные типа:
Иванов ул. Мира, д. 5, кв. 49
Петров ул. Мира, д. 5, кв. 49
Сидоров ул. Мира, д. 5, кв. 49
← →
TimScorp © (2006-03-22 05:58) [2]То результат будет таким:
Иванов, Адрес: ул. Мира, д. 5, кв. 49 - Петров, Адрес: ул. Мира, д. 5, кв. 49
Иванов, Адрес: ул. Мира, д. 5, кв. 49 - Сидоров, Адрес: ул. Мира, д. 5, кв. 49
Петров, Адрес: ул. Мира, д. 5, кв. 49 - Иванов, Адрес: ул. Мира, д. 5, кв. 49
← →
TimScorp © (2006-03-22 05:59) [3]Петров, Адрес: ул. Мира, д. 5, кв. 49 - Сидоров, Адрес: ул. Мира, д. 5, кв. 49
Сидоров, Адрес: ул. Мира, д. 5, кв. 49 - Иванов, Адрес: ул. Мира, д. 5, кв. 49
Сидоров, Адрес: ул. Мира, д. 5, кв. 49 - Петров, Адрес: ул. Мира, д. 5, кв. 49
Как можно сделать чтобы писалось только один раз??? (Т.е. не было зеркального отображения)
С уважением TimScorp.
← →
ЮЮ © (2006-03-22 07:26) [4]
> То результат будет таким:
Результат чего? Запроса? Вот и прведи его текст - покритикуем
И структуру таблицы. Или там только два поля?
И какой результат нужен?
← →
TimScorp © (2006-03-22 07:33) [5]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;
← →
TimScorp © (2006-03-22 07:35) [6]Нужно что бы выводило только:
Иванов, Адрес: ул. Мира, д. 5, кв. 49 - Петров, Адрес: ул. Мира, д. 5, кв. 49
Иванов, Адрес: ул. Мира, д. 5, кв. 49 - Сидоров, Адрес: ул. Мира, д. 5, кв. 49
и все. Как исключить зеркальную проверку???
С уважением TimScorp.
← →
Virgo_Style © (2006-03-22 07:55) [7]... WHERE A.ID>B.ID ?
← →
TimScorp © (2006-03-22 09:52) [8]Получается так:
Иванов, Адрес: ул. Мира, д. 5, кв. 49 - Петров, Адрес: ул. Мира, д. 5, кв. 49
Иванов, Адрес: ул. Мира, д. 5, кв. 49 - Сидоров, Адрес: ул. Мира, д. 5, кв. 49
Петров, Адрес: ул. Мира, д. 5, кв. 49 - Сидоров, Адрес: ул. Мира, д. 5, кв. 49
А нужно чтобы выводило только:
Иванов, Адрес: ул. Мира, д. 5, кв. 49 - Петров, Адрес: ул. Мира, д. 5, кв. 49
Иванов, Адрес: ул. Мира, д. 5, кв. 49 - Сидоров, Адрес: ул. Мира, д. 5, кв. 49
С уважением TimScorp.
← →
ivb2001 © (2006-03-22 12:20) [9]Может в AddressTBL добавить ORDER by NAME? тогда будут сначала все Ивановы потом Петровы и тд
← →
Virgo_Style © (2006-03-22 13:23) [10]Ну если нужен только Иванов, так и выбери только его, в чем проблема?)
← →
Sergey13 © (2006-03-22 13:29) [11]2[8] TimScorp © (22.03.06 09:52)
Над запросом мне думать лень, но тебе необходимо как то выделить одного из "похожих" например по MIN(ID). И к нему уже пристегивать остальных.
← →
SergP. (2006-03-22 18:18) [12]
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
Страницы: 1 вся ветка
Текущий архив: 2006.04.09;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.014 c