powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Создание запроса к базе данных, с условием "кроме"!
7 сообщений из 7, страница 1 из 1
Создание запроса к базе данных, с условием "кроме"!
    #39241009
MihailPetrov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, форумчане!

Возникла проблема, имеется таблица(структура в приложении), необходимо реализовать такой запрос - вывести автовладельцев купивших все марки Кроме какой-либо марки..

Имеется код пример - выводит автовладельцев купивших все марки! ( марки указаны в спец таблице марка, т. е купивших все марки указанные в спец таблице марка)

Код: plsql
1.
2.
3.
4.
5.
6.
7.
SELECT Покупатели.ФИО
FROM Покупатели
WHERE NOT Exists (SELECT *
                               FROM Марка
                              WHERE NOT EXISTS( SELECT Продажи.Марка
                                                            FROM Продажи
                                                            WHERE Марка.Код = Продажи.Марка AND Покупатели.Код = Продажи.ФИО ));



Как бы в этот код сунуть условие вывести тех кто купил все марки, но кроме одной..
...
Рейтинг: 0 / 0
Создание запроса к базе данных, с условием "кроме"!
    #39241024
nikkicap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MihailPetrov,

Не исключаю, что здесь длинный подход.
...
Рейтинг: 0 / 0
Создание запроса к базе данных, с условием "кроме"!
    #39241027
MihailPetrov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nikkicap,

спасибо, но здесь просто разница, вроде, а нужно купил все марки, кроме какой-то(купил все id marka кроме ,допустим, id marka=5
...
Рейтинг: 0 / 0
Создание запроса к базе данных, с условием "кроме"!
    #39241034
nikkicap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MihailPetrov,

Тогда в запросе main

Код: vbnet
1.
2.
3.
4.
SELECT client.client, marka.marka
FROM ((marka RIGHT JOIN sales ON marka.id_marka = sales.id_marka) LEFT JOIN client ON sales.id_client = client.id_client) LEFT JOIN count_sales ON sales.id_client = count_sales.id_client
WHERE ((([CountOfid_client]-[CountOfid_marka])<>0))
ORDER BY client.client;
...
Рейтинг: 0 / 0
Создание запроса к базе данных, с условием "кроме"!
    #39241035
nikkicap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MihailPetrov,

Если речь о конкретной марке, то тогда немного по-другому придется.
...
Рейтинг: 0 / 0
Создание запроса к базе данных, с условием "кроме"!
    #39241039
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nikkicapТогда в запросе main

Код: vbnet
1.
2.
3.
4.
SELECT client.client, marka.marka
FROM ((marka RIGHT JOIN sales ON marka.id_marka = sales.id_marka) LEFT JOIN client ON sales.id_client = client.id_client) LEFT JOIN count_sales ON sales.id_client = count_sales.id_client
WHERE ((([CountOfid_client]-[CountOfid_marka])<>0))
ORDER BY client.client;



условие не правильное - в выборку попадут все кто купил хоть одну машину (и 2 и 3 и 4), но не все 5,
а нужны те кто купил все, кроме одной, значит нужно условие WHERE ((([CountOfid_marka]-[CountOfid_client])=1))
то есть наоборот: количество марок минус количество купленное клиентом равно 1....
...
Рейтинг: 0 / 0
Создание запроса к базе данных, с условием "кроме"!
    #39241043
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
PARAMETERS MM TEXT;
SELECT Покупатели.ФИО 
FROM Покупатели INNER JOIN 
(SELECT ФИО, -Sum(Марка.Марка <> MM), -Sum(Марка.Марка = MM) 
FROM (SELECT DISTINCT Продажи.*, Марка.Марка FROM Марка INNER JOIN Продажи ON Марка.Код = Продажи.Марка) AS Q
GROUP BY ФИО
HAVING -Sum(Марка.Марка <> MM) = (DCount("*", "Марка") - 1) AND Sum(Марка.Марка = MM) = 0) AS QQ ON Покупатели.Код = QQ.ФИО;
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Создание запроса к базе данных, с условием "кроме"!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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