Форум OlegON > Компьютеры и Программное обеспечение > Операционные системы и программное обеспечение > Программирование

Задачи для обучения SQL-запросам в Супермаге : Программирование

29.03.2024 3:46


17.11.2014 16:36
Mtirt
 
Кстати, раз уж ты знаешь уже to_date, начни в запросах даты правильно указывать.
Т.е. вместо '&date1' писать to_date('&date1', шаблон даты и времени).
17.11.2014 17:22
BotMan
 
Код:
and (s.createdat between to_date('&date1', 'DD,MM,YYYY') and to_date('&date2', 'DD,MM,YYYY'))
супер, супер!


был у меня вопросик по дате,

Код:
s.createdat > sysdate
ничего не выводит, ровно и как со знаком = ,
а
Код:
and s.createdat < sysdate
показывает выборку, в чем подвох ?
17.11.2014 17:54
vdm
 
sysdate - это дата плюс текущее время. Т.е. с минутами/секундами.
createdat - дата нулями во времени.
18.11.2014 07:01
Mtirt
 
Цитата:
vdm sysdate - это дата плюс текущее время. Т.е. с минутами/секундами.
createdat - дата нулями во времени.
Тогда s.createdat < sysdate должно работать, нет разве???
18.11.2014 09:28
vdm
 
Так работает же
Цитата:
а
Код:

and s.createdat < sysdate

показывает выборку, в чем подвох ?
18.11.2014 09:39
BotMan
 
Код:
to_date(s.createdat, 'DD,MM,YYYY') =  to_date(sysdate-1, 'DD,MM,YYYY')
вот так работает, сегодня еще не создавались походу документы ))
18.11.2014 09:58
vdm
 
Код:
to_date(s.createdat, 'DD,MM,YYYY')
это масло масляное

Если нужно выделить часть из даты и сравнить с другой датой - используй функции обработки дат.
Обнулить время, оставить чистую дату - это
Код:
trunc(sysdate)
18.11.2014 10:16
BotMan
 
Цитата:
vdm Обнулить время, оставить чистую дату - это
Код:
trunc(sysdate)
благодарствую
19.11.2014 13:37
BotMan
 
решил сам себе придумать задание:
собсвенно наши вечно ищут цену без НДС, вот и решил я найти ее

Код:
select sp.article, crd.SHORTNAME, Itemprice, Itempricenotax, DOCID

 from supermag.smcard crd, supermag.smspec sp, supermag.smdocuments s

 where sp.article = '&article'
 and sp.article = crd.article
 and sp.doctype in ('WI')

group by sp.article, crd.SHORTNAME, Itemprice, Itempricenotax, DOCID
having  DOCID like 'ПН%' or docid like 'АП%' 

order by 4 desc
выводится несколько позиций, несколько накладных, а как вывести только последнюю? пробовал делать max(createdat) выводит чепуху.
Часовой пояс GMT +3, время: 03:46.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.