Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.01.18;
Скачать: CL | DM;

Вниз

Нужнапомощь с запросом   Найти похожие ветки 

 
Suntechnic   (2008-12-06 00:14) [0]

Друзья, помогите с запросом плз, не въезжаю как... Есть набор вроде этого:

B D
1 14
1 15 *
2 15 *
2 25
3 1
3 15 *
3 20
4 15 *
4 15 *
4 20
5 15 *
5 20

Нужно получить все пары "B","D" *, в которых присутствует повторяющееся во всем наборе число, в данном случае это число D = 15. Это число - искомое, поэтому where никак не годится. Известно только, что в пределах каждого значения "B" оно обязательно повторяется один или боле раз.


 
Германн ©   (2008-12-06 01:01) [1]

Одним запросом?

P.S. А ты тот Suntechnic?


 
other Suntechnic   (2008-12-06 01:14) [2]

Наверное, не тот;) Насчет количества запросов - главное результат, конечно


 
Германн ©   (2008-12-06 01:28) [3]


> other Suntechnic   (06.12.08 01:14) [2]
>
> Наверное, не тот;) Насчет количества запросов - главное
> результат, конечно
>

Уже понял что "не тот".
Тогда уточни какую БД ты пользуешь.
Но ответ ожидай только утром и далее. Ночью тут некому решать такие задачи.


 
other Suntechnic   (2008-12-06 01:35) [4]

БД в данном случае Access, если необходимо - пойду на MS SQL, вероятно, компакт.
Спок ночи!


 
Johnmen ©   (2008-12-06 10:48) [5]


> Нужно получить все пары "B","D" *, в которых присутствует
> повторяющееся во всем наборе число, в данном случае это
> число D = 15.

А, кроме того, ещё и 20.
Поэтому формулируй вопрос ещё раз.


 
Palladin ©   (2008-12-06 10:53) [6]


> Johnmen ©   (06.12.08 10:48) [5]

нет, 20 не канает, ему нужно найти число которое принадлежит всем из select distinct b


 
Johnmen ©   (2008-12-06 11:53) [7]


> Palladin ©   (06.12.08 10:53) [6]

Понятно.

Тогда примерно так:
SELECT * FROM Table T1
WHERE
 (SELECT COUNT(DISTINCT T2.B) FROM Table T2) =
 (SELECT COUNT(DISTINCT CAST(T3.B AS VARCHAR(16))||"+"||CAST(T3.D AS VARCHAR(16)))
   FROM Table T3 WHERE T3.D=T1.D)


 
Palladin ©   (2008-12-06 12:34) [8]


> Johnmen ©   (06.12.08 11:53) [7]

тоже сначала так подумал, нехотИт access работать с distinct внутри count


 
sniknik ©   (2008-12-06 14:31) [9]

> нехотИт access работать с distinct внутри count
можно решить переписав так

SELECT * FROM Table T1
WHERE
(SELECT Count(*) FROM (SELECT DISTINCT B FROM Table T2)) =
(SELECT Count(*) FROM (SELECT DISTINCT B,D FROM Table) T3 WHERE T3.D=T1.D)


 
Palladin ©   (2008-12-06 14:56) [10]


> (SELECT DISTINCT B,D FROM Table) T3 WHERE T3.D=T1.D

ВО! :) до чего я не додумался, решил пихнуть условие внутрь distincta, а до вынесения его повыше не допер...  )


 
other Suntechnic   (2008-12-06 15:21) [11]

Прошу прощения за некоторый игнор своего поста.
Насколько я понял, задача имеет относительно несложное решение, вот только почему-то синтакс оказывается несъедобным для Access. С чем едят Table T1, Table T2 и "Table) T3"?


 
Palladin ©   (2008-12-06 15:28) [12]

псевдомы для таблиц и выборок


 
sniknik ©   (2008-12-06 16:14) [13]

> вот только почему-то синтакс оказывается несъедобным для Access.
синтаксис у всех разный, чего бы там не говорили о совместимости и стандарты...


 
other Suntechnic   (2008-12-06 17:04) [14]

Ну ладно, T1, T2, T3 - псевдонимы. Table несъедобный, убрал - ругается на отсутствие указанных таблиц. В общем, идея понятна, переделаю. Спасибо всем!

P.S. Последний раз был на этом форуме уж не помню, года три назад - а имена всё те же! Респект вашему приверженству, господа!


 
Palladin ©   (2008-12-06 17:07) [15]


> Table несъедобный

здесь, вообще говоря, должно было быть имя твоей таблицы
разве это не очевидно?



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

Текущий архив: 2009.01.18;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.011 c
2-1228492011
dbgrid
2008-12-05 18:46
2009.01.18
Как определить на какой строке грида нах-ся курсор?


2-1228150306
Макс123
2008-12-01 19:51
2009.01.18
Загрузка в TImage


1-1206264052
MiHoY
2008-03-23 12:20
2009.01.18
VC DLL + Delphi


1-1206352689
tytus
2008-03-24 12:58
2009.01.18
Как послать сообщение форме из скрипта FastReport


2-1228210454
timekiller
2008-12-02 12:34
2009.01.18
TComboBox под колесиком .. мыши