sql select saldmoun.sums, saldmoun.datesal from saldmoun where
'408' = saldmoun.scheto
and '3' = saldmoun.subossch
and datesal=convert(datetime,'01/03/2014',104);
sql select sum(saldmoun.sums), katstroy.code from saldmoun left join katstroy on kauos[3]=katstroy.nrec where
'408' = saldmoun.scheto
and '3' = saldmoun.subossch
and datesal=#date(01,03,2014)
group by katstroy.code;
sql select sum(saldmoun.sums), katstroy.code from saldmoun left join katstroy on kauos[3]=katstroy.nrec where
'408' = saldmoun.scheto
and '3' = saldmoun.subossch
and datesal=#date(01,03,2014)
group by katstroy.code;
sql select sum(saldmoun.sums), substring(katstroy.code,1,3 ) from saldmoun left join katstroy on kauos[3]=katstroy.nrec where
'408' = saldmoun.scheto
and '3' = saldmoun.subossch
and datesal=#date(01,03,2014)
group by substring(katstroy.code,1,3);
а как только я именую поле (чтобы груп бай был меньше), запрос перестает работать
sql select sum(saldmoun.sums), substring(katstroy.code,1,3 ) as stroyka from saldmoun left join katstroy on kauos[3]=katstroy.nrec where
'408' = saldmoun.scheto
and '3' = saldmoun.subossch
and datesal=#date(01,03,2014);
sql select sum(saldmoun.sums), substring(katstroy.code,1,3 ) as stroyka from saldmoun left join katstroy on kauos[3]=katstroy.nrec where
'408' = saldmoun.scheto
and '3' = saldmoun.subossch
and datesal=#date(01,03,2014)
group by substring(katstroy.code,1,3);
Алексей писал(а):так работает, но смысл в именовании поля, чтобы потом это короткое имя использовать в group by ...
Могу ошибаться, но, помоему, псевдоним столбца, определенный в списке SELECT, нельзя использовать при указании столбца группирования.
По каким соображением Вам важно использовать его именно в group by ?
Проверьте версию атлантиса в сапорте - на старых могут быть глюки. для 810 это 5.4.43 или 5.4.44. В vipprogr.chm иногда пишут начиная с какого атлантиса функция актуальна.
edward_K писал(а):Проверьте версию атлантиса в сапорте - на старых могут быть глюки. для 810 это 5.4.43 или 5.4.44. В vipprogr.chm иногда пишут начиная с какого атлантиса функция актуальна.
Функции BITAND, BITNOT, BITOR и BITXOR доступны начиная с Атлантиса 5.5.12. У нас 5.4.44 Все ясно, спасибо!
SQL Function GetDocPer (
curparty : comp;
nrecops : comp;
st_v : comp;
dper : date
): comp ;
var
res : comp;
{
res:=(
SELECT top 1 k.nrec
FROM Spsopr sp inner join Katsopr k on sp.csopr=k.nrec
and sp.cparty=curparty
and sp.vidsopr=630
and sp.dsopr<=dper
and sp.prmc=1
and k.cpodrfrom=nrecops
and k.cnote=st_v
);
if (res= #comp(0) )
{
res:=(
SELECT top 1 k.nrec
FROM Spsopr sp inner join Katsopr k on sp.csopr=k.nrec
and sp.cparty=curparty
and sp.vidsopr=630
and sp.dsopr<=dper
and sp.prmc=1
and k.cnote=st_v
);
}
Return res;
}
после компиляции такой функции она появится на вкладке в саппорте в правах доступа на закладке "права на хранимые процедуры"
Также есть немало функций по работе с датой и временем, описанными в vipprog.chm в разделе "прямой sql" - их ,в принципе достаточно
Кроме этого никто не запрещает воспользоваться опытом Морзе
http://tyumbit.ru/gal_forum/viewtopic.php?f=8&t=10938
и написать что то свое на первозданном диалекте PL/SQL (ну или T-SQL)...кстати нечто подобное есть в
.\exe\ManufExt\SQL\Oracle\Func\
Пробую делать апдейт таблицы spstep и basedoc в печатной форме основания на продажу. Причем basedoc апдейтит, а на spstep Апдейт не проходит. В саппорте апдейты проходят нормально: