Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Сложна выборка. / 20 сообщений из 20, страница 1 из 1
14.09.2004, 08:44:10
    #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
14.09.2004, 08:50:43
    #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
14.09.2004, 11:49:53
    #32693323
tkaz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложна выборка.
Привет, aleks2

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

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

Код: plaintext
HAVING COUNT(MainASA.TheTopics)> 0 
...
Рейтинг: 0 / 0
14.09.2004, 14:27:31
    #32693806
tkaz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложна выборка.
Выдает то же, что и на рисунке 1. А мне нужен рисунок 2.
...
Рейтинг: 0 / 0
15.09.2004, 07:49:16
    #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
16.09.2004, 07:45:47
    #32696766
tkaz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложна выборка.
to aleks2: ты просто гений, но результат все тот же.
...
Рейтинг: 0 / 0
16.09.2004, 08:39:31
    #32696810
aleks2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложна выборка.
Дорогой, пока ты не приведешь пример данных и правильный результат я (и все другие гении) могем только гадать чего ты хочешь...
...
Рейтинг: 0 / 0
17.09.2004, 09:12:31
    #32699058
tkaz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложна выборка.
Прочитай мой первый постинг. Там даже иллюстрации имеются.
...
Рейтинг: 0 / 0
17.09.2004, 09:22:30
    #32699076
Geo
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
18.09.2004, 10:05:31
    #32700746
tkaz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложна выборка.
nz не распознается VBScript-ом. Использую iif, но результат - пустой граф.
...
Рейтинг: 0 / 0
18.09.2004, 15:30:31
    #32700877
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложна выборка.
Покажи таблицу, которая должна получиться из исходных данных...
...
Рейтинг: 0 / 0
19.09.2004, 23:48:42
    #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
20.09.2004, 11:31:07
    #32701819
tkaz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложна выборка.
Владимир Саныч,

Это почти то, что нужно, но это я и сам сделал давно. Проблема в том, чтоб в одной выборке иметь все Topics, но при этом применить условие "WHERE ASAType = 0" да так, чтобы суммировались только те Topics, которые соответствуют условию. Результат должен быть, как на Рисунке-2 в первом постинге.
...
Рейтинг: 0 / 0
20.09.2004, 12:24:29
    #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
20.09.2004, 14:19:07
    #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
20.09.2004, 16:04:26
    #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
20.09.2004, 16:57:59
    #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
20.09.2004, 17:06:07
    #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
24.09.2004, 12:30:10
    #32710151
tkaz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложна выборка.
Спасибо, мужики. Особенно (c)VIG.

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


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