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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.005 c
2-1228396508
Учащийся
2008-12-04 16:15
2009.01.18
TVarRec


2-1228638477
denissoft
2008-12-07 11:27
2009.01.18
Комонент для отображения дерева?


2-1228698109
S
2008-12-08 04:01
2009.01.18
IBEvents в DLL


15-1226873370
wl
2008-11-17 01:09
2009.01.18
сниму коннату в москве или области


2-1228493669
Смирнов Сергей
2008-12-05 19:14
2009.01.18
Поддержка Proxy





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