Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Составление SQL-запросов > запрос о днях


Автор: ddj 2.3.2010, 23:17
запрос о днях :
Дни, когда эгземпляров должно быть отданно меньше чем через всe дни отдачи всреднем.

эгземпляр:
Код

nr                  isbn         читатель        взято        отдать


Код

SELECT COUNT(otdat), extract(DAY  FROM otdat)
         FROM Egzemplior),
     srednejaDnej(srednij)
AS (select avg(FLOAT(srednejaDnej)) From Dni)
SELECT  srednejaDnej, srednij
FROM  Dni, srednejaDnej
where vsedni < srednij


Может кто-небудь знает как записать токой запрос.. 

Автор: Akina 2.3.2010, 23:40
SQL-запросы не пишут по некоему мистическому вдохновению - необходимо строго соблюдать хотя бы синтаксис (ну и логику бы - если хочется правильный результат). А от приведённого "запроса" сервер точно Кондратий хватит...

Хотя я даже не смог понять, что собсно надо сделать.

Автор: ddj 7.3.2010, 22:50
Код

(SELECT COUNT(отдать), extract(DAY  FROM отдать)
         FROM эгземпляр
  GROUP BY отдать)


Показывает число разных дней когда надо вернуть книги.
А надо сделать что бы выдавало число, когда должно быть 
отданно меньше чем средная сума всех дней.
(сумируем все дни и средняя их должна быть больше чем сума всех дней)

Автор: Gluttton 8.3.2010, 11:19
Не совсем понятно, зачем применять extract?
С его применением будут сгруппированны данные для одинаоковых чисел в разных месяцах и годах...

А вообще должно получиться, что то вроде такого:
Код

select
    отдать
from эгземпляр
    group by отдать
    having count(isbn)>
    (
        select avg(c)
        from
        (
            select count(isbn) as c
            from эгземпляр
                group by отдать
        )   as sa
    )

Автор: ddj 9.3.2010, 22:15
А зачем исползуется isbn ? Нам надо только с днями работать или я неправ ?

А extract я использую чтобы отделить от даты только дни, так как работаем с днями. 

Автор: Gluttton 9.3.2010, 22:31
Цитата(ddj @  9.3.2010,  22:15 Найти цитируемый пост)
А зачем исползуется isbn ? Нам надо только с днями работать или я неправ ?

По обрывкам фраз я понял задачу таким образом, что нужно, основываясь на статистике количества возвращаемых книг по дням, найти те дни в которые будет возвращено количество большее, чем в среднем...
Соответственно для решения этой задачи я и использую ISBN для подсчета количества книг, которые должны быть возвращены в определенный день.

Цитата(ddj @  9.3.2010,  22:15 Найти цитируемый пост)
А extract я использую чтобы отделить от даты только дни, так как работаем с днями. 

Я совершенно не против smile ... Просто я хотел обратить внимание на тот факт, что в таком случае, одинаковые числа месяцев в разных месяцах и годах будут рассматриваться как один день (на мой взгляд - это весьма специфично, попахивает нумирологией smile )...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)