Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.01.10;
Скачать: [xml.tar.bz2];

Вниз

Проблема с SQL   Найти похожие ветки 

 
vvvic   (2001-12-10 09:01) [0]

Начал изучать SQL и возникла проблема. Как написать запрос вытаскивающий из БД(Paradox) все дублирующиеся по четырём полям записи. Заранее спасибо!


 
Mick   (2001-12-10 09:19) [1]

Select f1,f2,f3,f4,count(*) Quantity from MyTable
Group By f1,f2,f3,f4
Having Quantity > 1


 
marat   (2001-12-10 10:09) [2]

Mick - это скорее как обнаружить
есть ли такие записи в таблице
а вот если надо найти именно эти записи тогда наверно надо чуть модифицировать твой запрос
select a.id
from MyTable a
where ....



 
Mick   (2001-12-10 10:23) [3]

Если кроме этих четырех полей в таблице есть только PK, то это именно, то что спрашивал автор.


 
vvvic   (2001-12-10 10:26) [4]

> Mick
Ругается на Quantity говорит Invalid field name


 
Mick   (2001-12-10 10:27) [5]

Убери запятую перед Quantity


 
vvvic   (2001-12-10 10:32) [6]

select name, surname, pathname, datebirth, seria, number, docseria, docnumber,count(*) Quantity from police
Group By name, surname, pathname, datebirth, seria, number, docseria, docnumber
Having Quantity > 1


 
TaB   (2001-12-10 10:32) [7]

В разных видах SQL - это по разному, попробуй так:
Select f1,f2,f3,f4,count(*) Quantity
From MyTable
Group By f1,f2,f3,f4
Having count(*) > 1


 
Mick   (2001-12-10 10:36) [8]

Да, точно. "Having Count(*) > 1"


 
vvvic   (2001-12-10 10:42) [9]

Спасибо огромное работает!
Но если мне надо вывести 5 полей, а сравнивать на дубликаты по 4?


 
Mick   (2001-12-10 10:47) [10]

В этом случае только связанный подзапрос ...


 
vvvic   (2001-12-10 10:52) [11]

Если можно покажите пример


 
vvvic   (2001-12-10 10:52) [12]

> Mick
Если можно покажите пример


 
Mick   (2001-12-10 11:14) [13]

Например так

Select * from MyTable A
Where EXISTS
(Select B.F1,B.F2,B.F3,B.F4, Count(B.*) From MyTable B
Where B.F1 = A.F1 and B.F2 = A.F2 and B.F3 = A.F3 and B.F4 = A.F4
Group By B.F1,B.F2,B.F3,B.F3 HAVING Count(B.*) > 1)


 
vvvic   (2001-12-10 11:55) [14]

> Mick
Пишу следующее:
select p.name, p.surname, p.pathname, p.datebirth, p.seria, p.number
from police p
where exists
(select u.name, u.surname, u.pathname, u.datebirth, count(u.*)
from police u
where (u.name=p.name) and (u.surname=p.surname ) and
(u.pathname=p.pathname) and (u.datebirth=p.datebirth)
Group By u.name, u.surname, u.pathname, u.datebirth Having count(u.*) > 1)
А он мне ошибку Invalid field name!
Хотя поля указаны правильно.
Может что-то не то?


 
Mick   (2001-12-10 12:06) [15]

Вот LocalSQL запрос, 100% работающий на Paradox

Select * from MyTable A
Where EXISTS
(Select B.F1,B.F2,B.F3,B.F4, Count(*) From MyTable B
Where B.F1 = A.F1 and B.F2 = A.F2 and B.F3 = A.F3 and B.F4 = A.F4
Group By B.F1,B.F2,B.F3,B.F4 HAVING Count(*) > 1)



 
vvvic   (2001-12-10 12:26) [16]

Огромное блогадарю!
В count-е убрал псевдоним и заработало!



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2002.01.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.003 c
3-28430
Alexandr
2001-12-07 08:58
2002.01.10
Базы данных и модемные соединения


3-28446
Kars
2001-12-05 23:09
2002.01.10
Где взять такой грид?


3-28437
Polevi
2001-12-06 18:11
2002.01.10
MIDAS


3-28406
vinni2000
2001-12-07 15:38
2002.01.10
И чего это он ругаеться?


1-28450
grab
2001-12-21 18:21
2002.01.10
Текст из TEdit на одной форме в ячейки таблицы на другой форме





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский