Запрос на поиск записей отличающихся значением в одном поле

maldoc
Дата: 29.11.2009 17:33:09
Пожалуйста, помогите !

Нужно вывести данные по одинаковому товару в разных магазинах (поле IdMagaz). Все записи по товару по всем магазинам в одной таблице (выборка через запрос qTovarOborot). Товар описывается полями idPol,idVid,Model,idMaterial,Tsvet.

Т.е. мне нужно вывести idPol,idVid,Model,idMaterial,Tsvet , если он присутствует хотя бы в двух магазинах (IdMagaz отличается)

Пока двигался в направлении -
SELECT qTovarOborot.IdPol, qTovarOborot.IdVid, qTovarOborot.Model, qTovarOborot.IdMaterial, qTovarOborot.Tsvet, qTovarOborot.Razmer, qTovarOborot.Kolichestvo, qTovarOborot.IdMagaz
FROM qTovarOborot
WHERE ((
(qTovarOborot.IdPol) In (SELECT [IdPol] FROM [qTovarOborot] As Tmp GROUP BY [IdPol],[IdVid],[Model],[IdMaterial],[Tsvet] HAVING Count(*)>1 And [IdVid] = [qTovarOborot].[IdVid] And [Model] = [qTovarOborot].[Model] And [IdMaterial] = [qTovarOborot].[IdMaterial] And [Tsvet] = [qTovarOborot].[Tsvet] And )
))
ORDER BY qTovarOborot.IdPol, qTovarOborot.IdVid, qTovarOborot.Model, qTovarOborot.IdMaterial, qTovarOborot.Tsvet;

но он выводит только те записи которые представлены в таблице более чем один раз ))), вообщем не то что надо (((
Да и хотца , результат получить ,именно, с помощью запроса (хоть макросы писать умею, но надо ж жить по проще)
отакота
Дата: 29.11.2009 18:32:19
maldoc
нужно вывести idPol,idVid,Model,idMaterial,Tsvet , если он присутствует хотя бы в двух магазинах (IdMagaz отличается)

так попробуйте
SELECT idPol,idVid,Model,idMaterial,Tsvet FROM 
(SELECT idPol,idVid,Model,idMaterial,Tsvet,IdMagaz
 FROM qTovarOborot
 GROUP BY idPol,idVid,Model,idMaterial,Tsvet,IdMagaz)
GROUP BY idPol,idVid,Model,idMaterial,Tsvet
HAVING COUNT(*)>1
maldoc
Дата: 29.11.2009 23:45:17
отакота
maldoc
нужно вывести idPol,idVid,Model,idMaterial,Tsvet , если он присутствует хотя бы в двух магазинах (IdMagaz отличается)

так попробуйте
SELECT idPol,idVid,Model,idMaterial,Tsvet FROM 
(SELECT idPol,idVid,Model,idMaterial,Tsvet,IdMagaz
 FROM qTovarOborot
 GROUP BY idPol,idVid,Model,idMaterial,Tsvet,IdMagaz)
GROUP BY idPol,idVid,Model,idMaterial,Tsvet
HAVING COUNT(*)>1

Спасибо за отклик! Пример понятен и прост как и все гениальное .
в нем для меня есть один недостаток - результат необходимо вывести в виде отчета, где должны быть отображена инфа по каждой товару (idPol,idVid,Model,idMaterial,Tsvet) плюс qTovarOborot.Razmer, qTovarOborot.Kolichestvo ПО КАЖДОМУ магазину (IdMagaz), а это я сделал включив Ваш скрипт в

SELECT qTovarOborot.IdPol, qTovarOborot.IdVid, qTovarOborot.Model, qTovarOborot.IdMaterial, qTovarOborot.Tsvet, qTovarOborot.Razmer, qTovarOborot.Kolichestvo, qTovarOborot.IdMagaz
FROM qTovarOborot,qReplyTovar
WHERE qReplyTovar.IdPol = qTovarOborot.IdPol And qReplyTovar.IdVid = qTovarOborot.IdVid And qReplyTovar.Model= qTovarOborot.Model And qReplyTovar.IdMaterial=qTovarOborot.IdMaterial And qReplyTovar.Tsvet = qTovarOborot.Tsvet
ORDER BY qTovarOborot.IdPol, qTovarOborot.IdVid, qTovarOborot.Model, qTovarOborot.IdMaterial, qTovarOborot.Tsvet

Спасибо тема закрыта