![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Повторяющиеся значения поля
rebroff © (2008-03-12 13:54:00)Нужно выбрать строки таблицы А, в которых совпадают значения поля F2,но разные значения поля F1.
Пример:
F1 | F2
-----------
100 | 200
112 | 200
Сергей М. (2008-03-12 15:34:00) [1]Какая из используемых таблиц имеет первичное ключевое поле ?
Сергей М. (2008-03-12 15:08:00) [2]
> на самом деле таких записей - 14.
Каких "таких" ?
Я о сравнении рез-тов группирующего запроса с результатами "обычного" ..
Johnmen (2008-03-12 15:03:00) [3]
> rebroff (12.03.08 14:43) [15]
> Эти строки не должны были попасть в выборку,
> т.к. TIN одинаковый.
По какому критерию определяется попадающая строка?
rebroff (2008-03-12 15:01:00) [4]Нет, на самом деле таких записей - 14.
Сергей М. (2008-03-12 14:58:00) [5]И это соответствует действительности ?
rebroff (2008-03-12 14:52:00) [6]TIN ADR_NS D_REG_CSTI COUNT(a.adr_ns) COUNT(a.tin)----------------------------------------------------------------------------
25810001 ул. Кирова....... 28.01.2002 48 48
25810001 ул. Кирова...... 01.05.2004 12 12
Сергей М. (2008-03-12 14:48:00) [7]
> rebroff (12.03.08 14:43) [15]
А где в этом фрагменте поля счетчиков ?
rebroff (2008-03-12 14:46:00) [8]ORACLE 9i
Запрос набираю в Нафигаторе.
sniknik (2008-03-12 14:45:00) [9]> в которых совпадают значения поля F2,но разные значения поля F1.
> Пример:
> F1 | F2
> -----------
> 100 | 200
> 112 | 200
SELECT DISTINCT F1, F2 FROM Table WHERE F2=200
rebroff (2008-03-12 14:43:00) [10]TIN ADR_NS D_REG_CSTI
-----------------------------------------------------------------
25810001 ул. Кирова....... 28.01.2002
25810001 ул. Кирова...... 01.05.2004
Эти строки не должны были попасть в выборку, т.к. TIN одинаковый.
Сергей М. (2008-03-12 14:38:00) [11]И СУБД какая ?
Сергей М. (2008-03-12 14:37:00) [12]
> не 0.
>
А что видишь ?
Приведи фрагмент реального набора и выдели строки, которые не должны были в него попасть
rebroff (2008-03-12 14:36:00) [13]Это в смысле "а был ли мальчик?":)
Нет, не 0.
Сергей М. (2008-03-12 14:34:00) [14]А если из версии [10] убрать
and count(a.tin)=1
то тоже 0 ?
rebroff (2008-03-12 14:31:00) [15]
select a.tin,a.c_sti_main, a.adr_ns,b.d_reg_sti,count(a.adr_ns),count(a.tin)
fromr21paddr a,r21taxpay b
wherea.tin=b.tin
group by a.adr_ns,a.tin,a.c_sti_main,b.d_reg_sti
havingcount(a.adr_ns)>1 and count(a.tin)=1
та же петрушка...
0 строк
Сергей М. (2008-03-12 14:27:00) [16]select F1, F2, count(F2), count(F1)
from A
group by F2, F1
having count(F2)>1 and count(F1)=1
rebroff (2008-03-12 14:22:00) [17]
select
a.tin,a.c_sti_main, a.adr_ns, b.d_reg_sti, count(a.adr_ns), count(a.tin)
from r21paddr a, r21taxpay b
where a.tin=b.tin
group by a.tin,a.adr_ns,a.c_sti_main,b.d_reg_sti
having count(a.adr_ns)>1 and count(a.tin)=1
Вернул 0 строк :((
Сергей М. (2008-03-12 14:18:00) [18]см. по аналогии с [1]
по полю F1 добавляешь сч-к, группировку и доп.условие отбора по сч-ку в HAVING-выражении
rebroff (2008-03-12 14:15:00) [19]Т.е. значения f2 в разных записяхравны, а значения f1 - нет.
Например:
111 Вася
222 Вася
------------
Такие выбираем
А такие-нет:
444 Петя
444 Петя
rebroff (2008-03-12 14:12:00) [20]Не значения полей между собой, а значения полей в разных записях.
f1 в одной записи равно f1 - в другой. Такие строки не выбираются.