02.10.2015 19:25
genyas
 
Привет , кто хорошо SQL знает ?
Есть у меня проблема , есть запрос в SM2000 .
Скажем вида

select "Вот тут я хочу вызвать суммовое поле" from
(select article , sum(quantity) as "count" from smdocumets) q

получается что я должен обратиться к алиасу "q." но как мне поле то вытащить ? Если я пишу q.count - он меня шлет , кричит что нет такого поля . Как обратиться к этому полю ?
Спасибо.
02.10.2015 19:49
konst
 
Может быть "count" - это оператор и его нельзя использовать?
и еще у smdocumets- n пропущена
да и еще в этой таблице нет поля "quantity"
и для операции суммирования - надо сделать группировку, например по артикулу
вот пример (образец по 1 конкретному документу)
Код:
select q.ss from (select article, sum(quantity) ss 
from supermag.smspec where docid = 'ПНП06000332' 
group by article) q
обычно какие то итоги подводятся с учетом периода, подразделений и контрагентов
в СМ эти данные хранятся в 2 таблицах:
smdocuments - заголовок документа со всеми реквизитами
smspec - спецификация документа
как правило эти две таблицы связываются по типу и номеру документа, в условие добавляются интервалы и т.п.
и группируются по подразделениям или контрагентам...
Код:
SELECT * FROM supermag.smdocuments a,  supermag.smspec b WHERE a.doctype = b.doctype AND  b.docid = a.ID AND ....
06.10.2015 09:36
genyas
 
Не совсем так .
Вообщем разобрался . делаем так .....
select q.prod from (select article as prod from smspec) q

Пример не претендует на правильность , просто показывает работу с алиасом .Подчеркну что нам не надо брать в КОВЫЧКИ наш алиас . Если будут ковычки , мы с ним работать не сможем .
06.10.2015 11:45
akonev
 
этой теме место в оракловой ветке, не в супермажной.
прошу аналогичные создавать там.

в исходном запросе было много ошибок. у konst просто не было шансов угадать, на какой из них ты споткнулся.
06.10.2015 11:57
Mtirt
 
Да и во втором запросе совсем непонятно зачем нужны два селекта в данной ситуации.
06.10.2015 12:41
akonev
 
Цитата:
Mtirt Да и во втором запросе совсем непонятно зачем нужны два селекта в данной ситуации.
та неее. понятно всё.
начинающий - применительно к SQL - программист разбирается в синтаксисе вложенных запросов.
упростил до варианта, где не остается места другим ошибкам.
Часовой пояс GMT +3, время: 11:37.

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