Главная страница
    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
1-28490
TimJiGer
2001-12-22 20:00
2002.01.10
Как по нажатию на кнопочку переместить каретку в RichEdite на следующею строку?


4-28563
Дремучий
2001-11-09 14:43
2002.01.10
Все свободны. А Вас, Штирлиц, я попрошу задержаться.


14-28544
Abajun
2001-11-16 09:38
2002.01.10
Шифровка


1-28511
VadX
2001-12-21 15:29
2002.01.10
Вопрос


7-28546
Riman
2001-06-01 09:33
2002.01.10
Сканер штрих кода





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский