powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите пожалуйста с запросом...
17 сообщений из 17, страница 1 из 1
Помогите пожалуйста с запросом...
    #32588389
Romires*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Существует таблица
Table1{id, nomer1, nomer2, descript}
в неё занесены следующие данные

id | nomer1 | nomer2 | descript
--------------------------------
1 | ....1.... | ....2....| ..text..
2 | ....1.... | ....3....| ..text..
3 | ....1.... | ....2....| ..text..
4 | ....2.... | ....4....| ..text..
5 | ....2.... | ....4....| ..text..
6 | ....3.... | ....5....| ..text..
7 | ....3.... | ....5....| ..text..


Нужно выбрать строки у которых одинаковый nomer1 и есть различные nomer2, в данной таблице это будут строки 1,2,3.
Например, когда есть таблица с "Продажами клиентам" (номер1 -это тип дисконтной карты, номер2- это номер отдела продаж) и нужно выбрать клиентов которые по одному типу дисконтной карты покупали в разных отделах продаж.

Чего-то не могу сообразить, как запрос сделать...
...
Рейтинг: 0 / 0
Помогите пожалуйста с запросом...
    #32588395
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может быть так? Идея - в первом запросе найти мин или мах nomer2 и сравнить это значение в основном запросе.

Код: plaintext
1.
2.
3.
4.
5.
SELECT nomer1, nomer2 FROM 
Table1 INNER JOIN (
SELECT nomer1,  Min(nomer2) AS N2
FROM Table1
GROUP BY nomer1) AS T
WHERE Table1.nomer2 <> T.N2
...
Рейтинг: 0 / 0
Помогите пожалуйста с запросом...
    #32588397
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
select table1.* 
from table1 inner join
     (select nomer1
      from
           (select distinct nomer1,nomer2 
            from table1) as t
            group by nomer1 having count(*)> 1 ) as t1
on table1.nomer1=t1.nomer1
...
Рейтинг: 0 / 0
Помогите пожалуйста с запросом...
    #32588828
Romires*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, большое))

(c)VIG, этот код в версии Access 2000/XP работает на ура,
а в версии 97 выдаёт ошибку синтаксиса (в предложении From)
как можно поправить для версии 97 ?
...
Рейтинг: 0 / 0
Помогите пожалуйста с запросом...
    #32588849
Фотография funddd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй вложенные селекты сохранить как отдельные запросы и работать с ними.
...
Рейтинг: 0 / 0
Помогите пожалуйста с запросом...
    #32588862
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Romires*Спасибо, большое))

(c)VIG, этот код в версии Access 2000/XP работает на ура,
а в версии 97 выдаёт ошибку синтаксиса (в предложении From)
как можно поправить для версии 97 ?
Подзапросы в предложении from выделяешь след. образом
select ...
from [ подзапрос ]. as ...
where
...
Рейтинг: 0 / 0
Помогите пожалуйста с запросом...
    #32588867
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторИдея - в первом запросе найти мин или мах nomer2 и сравнить это значение в основном запросе.
Исходя из идеи :)
Код: plaintext
1.
2.
3.
4.
select *
From tbl1 as t1
where
  (select min(nomer2) from tbl1 where nomer1 = t1.nomer1) <
  (select max(nomer2) from tbl1 where nomer1 = t1.nomer1);
...
Рейтинг: 0 / 0
Помогите пожалуйста с запросом...
    #32588891
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SELECT Таблица1.Поле1, Count(Таблица1.Поле2) AS [Count-Поле2]
FROM Таблица1
GROUP BY Таблица1.Поле1
HAVING (((Count(Таблица1.Поле2))>1));
...
Рейтинг: 0 / 0
Помогите пожалуйста с запросом...
    #32588920
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SharkSELECT Таблица1.Поле1, Count(Таблица1.Поле2) AS [Count-Поле2]
FROM Таблица1
GROUP BY Таблица1.Поле1
HAVING (((Count(Таблица1.Поле2))>1));

Это не соответствует вопросу - во всех nomer1 количество nomer2 больше 1. Поэтому запрос вернет все три кода, а должен только 1
...
Рейтинг: 0 / 0
Помогите пожалуйста с запросом...
    #32588946
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Несоответствует
GROUP BY Поле1(В смысле nomer1)
Что такое Group by знаем?
...
Рейтинг: 0 / 0
Помогите пожалуйста с запросом...
    #32589005
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shark>Несоответствует
GROUP BY Поле1(В смысле nomer1)
Что такое Group by знаем?

И что же такое GROUP BY?
Специально построил таблицу и твой запрос:

SELECT Table1.nomer1, Count(Table1.nomer2) AS [Count-nomer2]
FROM Table1
GROUP BY Table1.nomer1
HAVING (((Count(Table1.nomer2))>1));
Вот что он выдал:
nomer1 Count-nomer2
1 3
2 2
3 2
...
Рейтинг: 0 / 0
Помогите пожалуйста с запросом...
    #32589103
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
:-)
Нужно было вернуть набор записей
1
2
3
Это не он? Ну да, лишнее поле есть. Убери его:-)
...
Рейтинг: 0 / 0
Помогите пожалуйста с запросом...
    #32589110
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, сори, я вопрос не понял, это я болван:-)
...
Рейтинг: 0 / 0
Помогите пожалуйста с запросом...
    #32589286
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучше обьединить обе идеи :)
авторselect table1.*
from table1 inner join
(select nomer1
from table1
group by nomer1 having min(nomer2)<max(nomer2)
) as t1
on table1.nomer1=t1.nomer1
...
Рейтинг: 0 / 0
Помогите пожалуйста с запросом...
    #32589323
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(c)VIGЛучше обьединить обе идеи :)
авторselect table1.*
from table1 inner join
(select nomer1
from table1
group by nomer1 having min(nomer2)<max(nomer2)
) as t1
on table1.nomer1=t1.nomer1

Запрос paparome работает прекрасно! Что еще нужно :)
...
Рейтинг: 0 / 0
Помогите пожалуйста с запросом...
    #32589344
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЗапрос paparome работает прекрасно! Что еще нужно :)
Да в общем то ничего ,кроме желания оптимизировать :)
У paparome два коррелированых подзапроса ,что на больших объёмах может сказаться на быстродействии
...
Рейтинг: 0 / 0
Помогите пожалуйста с запросом...
    #32589409
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Повторюсь :)
Мои запросы - это всего-лишь идеии, и я ни когда не претендовал на оптимальность :)
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите пожалуйста с запросом...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]