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

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

19.04.2024 15:42


05.12.2014 14:26
BotMan
 
Код:
select  sa.name, sum(quantity) as "Общее Количество" from smgoods g, smcard crd, sacardclass sa
where g.article = crd.article
and g.quantity <> 0
and crd.idclass = sa.id
and sa.tree = '&tree'
group by sa.name
показывает количество в группе, но не добавляет туда подгруппу...
05.12.2014 14:31
Mtirt
 
Надо почитать про оператор Like. И понять, почему мы его используем для дерева групп.
05.12.2014 14:39
BotMan
 
Код:
select  sa.name,sa.tree, sum(quantity) as "Общее Количество" from smgoods g, smcard crd, sacardclass sa
where g.article = crd.article
and g.quantity <> 0
and crd.idclass = sa.id
and sa.tree like '&tree%'
group by sa.name, sa.tree
этот вариант работает как надо.

читал про него как то. просто я еще не умею пользоваться переменными, что в них можно вставлять и как. как они будут читаться.
05.12.2014 15:24
BotMan
 
Код:
select s.username ,ss.typename, count(ss.typename) 
from supermag.smdoclog s, supermag.ssobjecttypes ss
where trunc(s.eventtime) = trunc(sysdate-1)
and ss.objtype = s.doctype
and s.oldstate = -1
group by s.username, ss.typename order by 3, 1
это задание №3
06.12.2014 10:22
konst
 
Предлагаю следующую задачу:
дано: список документов из smdocuments,
необходимо вывести таблицу crosstab за определенный интервал, например последние 7 дней, в виде:
количество документов каждого типа, при этом список типов документов должен быть динамическим
(т.е. если за интервал документов с таким типом не было - столбец не должен создаваться)
а также желательно иметь возможность указать, какие документы должны попасть в отчет
Код:
DAY             WI     WO      IW       CS      CR     total
------------------------------------------------------------------
2014-12-01     20      5        2        1       1     29
2014-12-02     25      6        2        1       1     35
2014-12-03     30      7        2        1       0     40
2014-12-04     22      4        2        1       1     30
2014-12-05     26      3        2        1       0     32
2014-12-06     15      1        2        1       1     20
2014-12-07     5       0        2        1       0     8
06.12.2014 12:01
BotMan
 
level up лихой ))) буду делать!
13.03.2015 15:07
BotMan
 
подскажите с таки вопросом:
есть запрос:

Код:
select name, article, accepted from smcard
where article = &article
and upper(name) = upper('%&name%')
and accepted = &accepted
как его преобразовать, чтобы можно было получать результат, если одна или две переменные остались пустые?
при таком раскладе ругается "отсутствует выражение!"
13.03.2015 16:13
vdm
 
Тебе принципиальна запись параметров через & ?
Двоеточие некошерно? (:article, :accepted)
13.03.2015 17:04
BotMan
 
Цитата:
vdm Тебе принципиальна запись параметров через & ?
Двоеточие некошерно? (:article, :accepted)
ваще пофиг, главное чтобы оракл хавал 8)
14.03.2015 12:53
Mtirt
 
Цитата:
BotMan подскажите с таки вопросом:
есть запрос:

Код:
select name, article, accepted from smcard
where article = &article
and upper(name) = upper('%&name%')
and accepted = &accepted
как его преобразовать, чтобы можно было получать результат, если одна или две переменные остались пустые?
при таком раскладе ругается "отсутствует выражение!"
По-моему, никак. Только программно обрабатывать, т.е. менять текст запроса, в зависимости от значений переменных.
Часовой пояс GMT +3, время: 15:42.

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