Access. Запрос с вычислением

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
Jill
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 17.11.2005 (Чт) 16:13

Access. Запрос с вычислением

Сообщение Jill » 17.11.2005 (Чт) 16:29

Помогите, плз!!! Каким макаром создать запрос, вычисляющий %отношение числа строк с определенным условием к общему числу строк в таблице.
По-отдельности, общее количество строк и строк с условием (2 разных запроса) я выделю. А вот как это провернуть в одном запросе??? :cry:

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 17.11.2005 (Чт) 16:32

Никак.
Lasciate ogni speranza, voi ch'entrate.

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 17.11.2005 (Чт) 16:37

СУБД какая?

Jill
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 17.11.2005 (Чт) 16:13

Сообщение Jill » 17.11.2005 (Чт) 16:38

Серьезно? :-(
Тогда, получается, задание поставлено некорректно? Цитирую: "Запрос - процент экзаменов, принимаемых в аудитории 325 главного корпуса". То бишь (если я правильно понимаю): кол-во экз.в 325 аудитории / общее кол-во экзаменов * 100?

Сорри, я с базами в принципе не в первый раз сталкиваюсь, но задание такое...странное :oops:

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 17.11.2005 (Чт) 16:41

Код: Выделить всё
select
   CategoryID,
   count(ProductID) as CNT,
   CONVERT(numeric(4,2),ROUND((count(ProductID)*100.0) / (select Count(*) from Products),2))  as PRCNT
from Products
group by CategoryID


для MSSQL примерно так, для акцесса примерно также только функции округления и примеведения типов поменяй

Jill
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 17.11.2005 (Чт) 16:13

Сообщение Jill » 17.11.2005 (Чт) 16:42

Ennor писал(а):СУБД какая?


Какая? А какие они...хм...есть?
Реляционная. Аксесная :wink:

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 17.11.2005 (Чт) 16:49

Код: Выделить всё
SELECT Products.CategoryID, Count(Products.ProductID) AS CNT, Format(Count([ProductID])/(SELECT Count(*) FROM Products),'Percent') AS PRCNT
FROM Products
GROUP BY Products.CategoryID;



Access Nwind.mdb

Jill
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 17.11.2005 (Чт) 16:13

Сообщение Jill » 17.11.2005 (Чт) 17:16

Konst_One писал(а):
Код: Выделить всё
SELECT Products.CategoryID, Count(Products.ProductID) AS CNT, Format(Count([ProductID])/(SELECT Count(*) FROM Products),'Percent') AS PRCNT
FROM Products
GROUP BY Products.CategoryID;




Можно я уточню? Немножко не разобралась...
SELECT Products.CategoryID - выбираем столбец CategoryID из таблицы Products
Count(Products.ProductID) AS CNT - подсчитываем кол-во строк (?с условием?)
Format(Count([ProductID])/(SELECT Count(*) FROM Products),'Percent') AS PRCNT - бррррррр.... подсчитанное кол-во делим на общее (?) - (*) - это так и выглядит?

блин, запуталась окончательно :-( нет у меня Northwind, чтоб посмотреть соответствия таблиц :-((( Борей у меня...

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 17.11.2005 (Чт) 17:33

NWIND.MDB лежит в папочке C:\Program Files\Microsoft Visual Studio\VB98

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 17.11.2005 (Чт) 17:34

запрос показывает распределение товаров по категориям в количественном и процентном соотношениях.

Jill
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 17.11.2005 (Чт) 16:13

Сообщение Jill » 17.11.2005 (Чт) 18:05

Нет у меня такой папочки :-( Урезали все :-(

Может, подскажете соответствия:
Таблица – Расписание
Общее кол-во строк можно считать по КодЭкзамена или по Дата
А с условием – КодАудитории должен быть равен 5

Где что поменять?
Плз....

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 17.11.2005 (Чт) 18:18

структуру табличек и их содержимое в студию :D
и внятно написать , что хотите видеть в итоге.

Jill
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 17.11.2005 (Чт) 16:13

Сообщение Jill » 17.11.2005 (Чт) 18:32

Накидала навскидку - оригинала под рукой нет
Необходимо запросом вычислить % экзаменов, проходящих в аудитории 5
(по идее - 20% в итоге получится)
КодЭкзамена Дата КодАудитории
1 01.01.2001 2
2 01.01.2001 5
3 01.01.2001 3
4 02.01.2001 4
5 02.01.2001 5
6 03.01.2001 4
7 03.01.2001 1
8 03.01.2001 2
9 03.01.2001 1
10 03.01.2001 4

структура - самая простая - просто таблица Расписание

зы: как ее поплющило! разобраться сможете?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 17.11.2005 (Чт) 19:25

Код: Выделить всё
SELECT SUM(IIf(КодАудитории=5,1,0))/COUNT(*)
FROM Расписание
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 17.11.2005 (Чт) 21:28

GSerg
уже готово :lol:
а я только до дома добрался

Jill
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 17.11.2005 (Чт) 16:13

Сообщение Jill » 18.11.2005 (Пт) 12:08

Вау!!! Как же все...просто...

СПАСИБО ОГРОМНОЕ!!! :-)

Надо, надо SQL поднимать... позабывала все...

Еще раз СПАСИБО!

Jill
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 17.11.2005 (Чт) 16:13

Сообщение Jill » 18.11.2005 (Пт) 12:11

Вау!!! Как же все...просто...

СПАСИБО ОГРОМНОЕ!!! :-)

Надо, надо SQL поднимать... позабывала все...

Еще раз СПАСИБО!


Только, плз, уточните КодАудитории=5,1,0 - цифры 1 и 0 - что они показывают?

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 18.11.2005 (Пт) 12:55

они ничего не показывают - это счетчик по условию :lol:

Jill
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 17.11.2005 (Чт) 16:13

Сообщение Jill » 18.11.2005 (Пт) 13:19

Ок, пасиба :-)


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

    TopList