powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Сложна выборка.
20 сообщений из 20, страница 1 из 1
Сложна выборка.
    #32692938
tkaz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем,

Следующая проблема.

Имеются таблицы Topics, MainASA.

Topics

TopicID TopicofDiscussion
1 topic1
2 topic2
3 topic3
4 topic4
5 topic5


MainASA

ASAType TheTopics (ID из таблицы Topics)
0 1
1 1
1 2
0 3
1 5
0 1


Результирующая таблица в случае WHERE ASAType = 0


Topic CountofASA (кол-во вхождений topic1, topic2 .... в MainASA)
topic1 2
topic2 0
topic3 1
topic4 0
topic5 0


С помощью нижеследующей выборки получаю Рисунок-1.

SELECT COUNT(MainASA.TheTopics) AS CountOfTheTopics,
Topics.TopicofDiscussion From MainASA, Topics WHERE
((MainASA.ASAType = 0) AND (MainASA.TheTopics = Topics.TopicID))
GROUP BY Topics.TopicofDiscussion

Нужно создать выборку, которая выдает результат, подобный тому,
что на Рисунке-2. Т.е. выдавал все топики, но рисовал только там,
где результат не нуль.
...
Рейтинг: 0 / 0
Сложна выборка.
    #32692945
aleks2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SELECT COUNT(MainASA.TheTopics) AS CountOfTheTopics,
Topics.TopicofDiscussion From MainASA, Topics WHERE
((MainASA.ASAType = 0) AND (MainASA.TheTopics = Topics.TopicID))
GROUP BY Topics.TopicofDiscussion
HAVING COUNT(MainASA.TheTopics)=0
...
Рейтинг: 0 / 0
Сложна выборка.
    #32693323
tkaz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет, aleks2

Спасибо за ответ.
Но выдает абсолютно пустой граф.
...
Рейтинг: 0 / 0
Сложна выборка.
    #32693449
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tkazПривет, aleks2

Спасибо за ответ.
Но выдает абсолютно пустой граф.

Код: plaintext
HAVING COUNT(MainASA.TheTopics)> 0 
...
Рейтинг: 0 / 0
Сложна выборка.
    #32693806
tkaz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выдает то же, что и на рисунке 1. А мне нужен рисунок 2.
...
Рейтинг: 0 / 0
Сложна выборка.
    #32694850
aleks2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SELECT COUNT(MainASA.TheTopics) AS CountOfTheTopics, Topics.TopicofDiscussion
From Topics LEFT OUTER JOIN MainASA ON (MainASA.TheTopics = Topics.TopicID)
WHERE ((MainASA.ASAType = 0))
GROUP BY Topics.TopicofDiscussion
--------------
На неправильный вопрос всегда следует неверный ответ.
...
Рейтинг: 0 / 0
Сложна выборка.
    #32696766
tkaz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to aleks2: ты просто гений, но результат все тот же.
...
Рейтинг: 0 / 0
Сложна выборка.
    #32696810
aleks2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дорогой, пока ты не приведешь пример данных и правильный результат я (и все другие гении) могем только гадать чего ты хочешь...
...
Рейтинг: 0 / 0
Сложна выборка.
    #32699058
tkaz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прочитай мой первый постинг. Там даже иллюстрации имеются.
...
Рейтинг: 0 / 0
Сложна выборка.
    #32699076
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+ к варианту alex2

SELECT COUNT(MainASA.TheTopics) AS CountOfTheTopics, Topics.TopicofDiscussion
From Topics LEFT JOIN MainASA ON (MainASA.TheTopics = Topics.TopicID)
WHERE nz(MainASA.ASAType,0) = 0
GROUP BY Topics.TopicofDiscussion
...
Рейтинг: 0 / 0
Сложна выборка.
    #32700746
tkaz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nz не распознается VBScript-ом. Использую iif, но результат - пустой граф.
...
Рейтинг: 0 / 0
Сложна выборка.
    #32700877
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Покажи таблицу, которая должна получиться из исходных данных...
...
Рейтинг: 0 / 0
Сложна выборка.
    #32701414
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
GeoSELECT COUNT(MainASA.TheTopics) AS CountOfTheTopics, Topics.TopicofDiscussion
From Topics LEFT JOIN MainASA ON (MainASA.TheTopics = Topics.TopicID)
WHERE nz(MainASA.ASAType,0) = 0
GROUP BY Topics.TopicofDiscussion
SELECT COUNT(MainASA.TheTopics) AS CountOfTheTopics, Topics.TopicofDiscussion
From Topics LEFT JOIN MainASA ON (MainASA.TheTopics = Topics.TopicID)
GROUP BY Topics.TopicofDiscussion
...
Рейтинг: 0 / 0
Сложна выборка.
    #32701819
tkaz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Саныч,

Это почти то, что нужно, но это я и сам сделал давно. Проблема в том, чтоб в одной выборке иметь все Topics, но при этом применить условие "WHERE ASAType = 0" да так, чтобы суммировались только те Topics, которые соответствуют условию. Результат должен быть, как на Рисунке-2 в первом постинге.
...
Рейтинг: 0 / 0
Сложна выборка.
    #32702009
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SELECT
COUNT(MainASA.TheTopics) AS CountOfTheTopics,
Topics.TopicofDiscussion
From Topics LEFT JOIN MainASA
ON (MainASA.TheTopics = Topics.TopicID) And (MainASA.ASAType = 0 + Topics.TopicID - Topics.TopicID )
GROUP BY Topics.TopicofDiscussion

?
...
Рейтинг: 0 / 0
Сложна выборка.
    #32702383
aleks2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SELECT COUNT(MainASA.TheTopics) AS CountOfTheTopics, Topics.TopicofDiscussion
From Topics LEFT OUTER JOIN MainASA ON (MainASA.TheTopics = Topics.TopicID)
WHERE ((MainASA.ASAType = 0) or MainASA.TheTopics is null)
GROUP BY Topics.TopicofDiscussion
...
Рейтинг: 0 / 0
Сложна выборка.
    #32702709
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks2SELECT COUNT(MainASA.TheTopics) AS CountOfTheTopics, Topics.TopicofDiscussion
From Topics LEFT OUTER JOIN MainASA ON (MainASA.TheTopics = Topics.TopicID)
WHERE ((MainASA.ASAType = 0) or MainASA.TheTopics is null)
GROUP BY Topics.TopicofDiscussion
Не - на ноль надо проверять в условии склейки, иначе он повыбрасывает топики, которые не имеют тип 0, но имеют дурогой тип (т.е. не Null по вашему второму условию)
...
Рейтинг: 0 / 0
Сложна выборка.
    #32702840
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
select COUNT(ma.TheTopics) AS CountOfTheTopics, Topics.TopicofDiscussion 
from From Topics LEFT JOIN 
       (select TheTopics from MainASA where ASAType =  0 ) as ma
on Topics.TopicID=ma.TheTopics
...
Рейтинг: 0 / 0
Сложна выборка.
    #32702858
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sorry,забыл GROUP BY
Код: plaintext
1.
2.
3.
4.
select COUNT(ma.TheTopics) AS CountOfTheTopics, Topics.TopicofDiscussion 
from From Topics LEFT JOIN 
       (select TheTopics from MainASA where ASAType =  0 ) as ma
on Topics.TopicID=ma.TheTopics
GROUP BY Topics.TopicofDiscussion
...
Рейтинг: 0 / 0
Сложна выборка.
    #32710151
tkaz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, мужики. Особенно (c)VIG.

Все сработало. Если, конечно, удалить лишний FROM. :)
Остался один вопрос.
У меня 3 multiple selecta на странице. Как я могу добавить в базу выбранные пункты ? Какие имеются способы ?
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Сложна выборка.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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