Модераторы: Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с Запросом скорее всего Group by, Есть запрос но выполняется некорректно 
V
    Опции темы
stashash
Дата 18.3.2010, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 18.3.2010

Репутация: нет
Всего: нет



Код

select distinct extract(day from c.vremya),cast(c.vremya as time) from control c
join tab t on(c.tabn=t.tabn )
join grafik g on(g.k_grafik=t.k_grafik)
where cast(c.vremya as date)>=:date1 and cast(c.vremya as date)<=:date2 and c.tabn=:tabn
group by extract(day from c.vremya),vremya
having vremya=min(vremya)


Вот запрос.
Есть таблица control  в которой есть поля
tabn-integer это инд номер сотрудника
vremya-timestamp - тут дата и время когда он пересекал проходную
post-int - это номер проходной.

ещё таблица  tab с полями
tabn- инд номер
fio- фио
...
...
k_grafik- идентификатор графика рабочего дня.

и таблица grafik с полями
k_grafik - int инд 
start - time -начало раб дня
finish -time - конец рабдня.


Запрос должен выводить всех опоздавших(кто пришёл позже grafik.start) за определённый период времени, за каждый день.
Соответственно считаться будет опоздавшим тот чей первый проход через проходную будет позже start.
Я уже голову сломал но то что я написал выводит все перемещения через проходную а не минимальное.
ХЕЛП ПЛИЗ.
НАПРАВТЕ В НУЖНУЮ СТОРОНУ..

Это сообщение отредактировал(а) stashash - 18.3.2010, 12:01
PM MAIL   Вверх
Akella
Дата 18.3.2010, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



stashash, а тегами Код нынче программисты уже не умеют пользоваться?
PM MAIL   Вверх
stashash
Дата 18.3.2010, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 18.3.2010

Репутация: нет
Всего: нет



Какие будут предложения...?

Это сообщение отредактировал(а) stashash - 18.3.2010, 11:31
PM MAIL   Вверх
former
Дата 18.3.2010, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 1
Всего: 17



Цитата(stashash @  18.3.2010,  11:14 Найти цитируемый пост)
Какие будут предложения...?

Для начала, поправить предыдущий пост. smile 


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
stashash
Дата 18.3.2010, 11:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 18.3.2010

Репутация: нет
Всего: нет



А что не так?
PM MAIL   Вверх
former
Дата 18.3.2010, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 1
Всего: 17



Цитата(Akella @  18.3.2010,  11:09 Найти цитируемый пост)
stashash, а тегами Код нынче программисты уже не умеют пользоваться? 




--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
stashash
Дата 18.3.2010, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 18.3.2010

Репутация: нет
Всего: нет



Не понял...)
Я не до понял что эта фраза значит?
PM MAIL   Вверх
stashash
Дата 18.3.2010, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 18.3.2010

Репутация: нет
Всего: нет



Ок..)
А теперь какие мысли будут..)?
PM MAIL   Вверх
former
Дата 18.3.2010, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 1
Всего: 17



Отредактируй свой первый пост. В редакторе можно подсвечивать код (выпадающий список в правом верхнем углу редактора) для его читабельности. В твоем случае это SQL.


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
stashash
Дата 18.3.2010, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 18.3.2010

Репутация: нет
Всего: нет



Всё ок..))
Давайте по проблеме)
PM MAIL   Вверх
Deniz
Дата 18.3.2010, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 22
Всего: 44



?
Код
select extract(day from c.vremya), c.tabn, min(cast(c.vremya as time))
from control c
  join tab t on(c.tabn=t.tabn )
  join grafik g on(g.k_grafik=t.k_grafik)
where (c.vremya between :date1 and :date2)
group by extract(day from c.vremya), c.tabn
having min(cast(c.vremya as time)) > g.start



--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
stashash
Дата 18.3.2010, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 18.3.2010

Репутация: нет
Всего: нет



Цитата(Deniz @ 18.3.2010,  12:19)
?
Код
select extract(day from c.vremya), c.tabn, min(cast(c.vremya as time))
from control c
  join tab t on(c.tabn=t.tabn )
  join grafik g on(g.k_grafik=t.k_grafik)
where (c.vremya between :date1 and :date2)
group by extract(day from c.vremya), c.tabn
having min(cast(c.vremya as time)) > g.start

Invalid token.
Dynamic SQL Error.
SQL error code = -104.
password required.



Вот такая ошибка вываливается.... я заметил что она вылазит когда  having ей не нравится..

Добавлено через 5 минут и 13 секунд
Тут же возник вопрос почему скрипт начал отрабатывать нормально когда я убрал
полностью Having

Код

having min(cast(c.vremya as time)) > g.start


Соответственно он также выдаёт и тех кто пришёл вовремя..)

Это сообщение отредактировал(а) stashash - 18.3.2010, 12:24
PM MAIL   Вверх
Deniz
Дата 18.3.2010, 15:12 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 22
Всего: 44



Цитата(stashash @  18.3.2010,  14:23 Найти цитируемый пост)
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
password required.
А причем тут password?
Можно конечно еще немного подумать, но что-то лень ...
Для нормального ответа обычно вопрошающие выкладывают скрипт БД с частью данных, и желаемый результат.


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Interbase"
Alex

Обязательно указание:

1. Версию InterBase (Firebird, Yaffil)

2. Способа доступа (ADO, BDE, IBX и т.д.)

  • КАК ПРАВИЛЬНО ОФОРМИТЬ КОД - ЗДЕСЬ
  • КАК ПРАВИЛЬНО УКАЗАТЬ ТЕКСТ ОШИБКИ - ЗДЕСЬ
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • FAQ раздела лежит здесь!

Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Firebird, Interbase | Следующая тема »


 




[ Время генерации скрипта: 0.0620 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.