"Where " по условию
Добавлено: 29 июл 2013, 17:55
Классификатор видов оплат имеет привязку ко внешней классификации.
Исходя их привязанного условия выбрать sumvidop месяц "в котором" либо "за который "
Примерно так:
select
klvidopl.vidoplp,
exclassseg.name,
sumvidop.summa
from
klvidopl,exclassseg,exclassval,exclassname,
sumvidop,
lschet
where
((
15010 == exclassname.wtable
and 'В форме 4 учитывать по месяцу ЗА который начисленно' ==exclassname.name
and EXCLASSNAME.CLASSCODE==EXCLASSVAL.CLASSCODE
and 15010==EXCLASSVAL.WTABLE
and KLVIDOPL.nrec==EXCLASSVAL.CREC
and Exclassval.CClassSeg==EXCLASSSEG.nrec
and lschet.nrec == sumvidop.clsch
! if(exclassseg.name='+',
! 2013==sumvidop.yeark and 5==sumvidop.mes,
! 2013 == sumvidop.yearn and 5 == sumvidop.mesn)
and 2013 == if(exclassseg.name='+',sumvidop.yerk,sumvidop.yarn)
and 5 == if(exclassseg.name='+',sumvidop.mes,sumvidop.mesn)
and klvidopl.vidopl == sumvidop.vidopl
))
;
Подскажите криворукому как связать по условию?
Исходя их привязанного условия выбрать sumvidop месяц "в котором" либо "за который "
Примерно так:
select
klvidopl.vidoplp,
exclassseg.name,
sumvidop.summa
from
klvidopl,exclassseg,exclassval,exclassname,
sumvidop,
lschet
where
((
15010 == exclassname.wtable
and 'В форме 4 учитывать по месяцу ЗА который начисленно' ==exclassname.name
and EXCLASSNAME.CLASSCODE==EXCLASSVAL.CLASSCODE
and 15010==EXCLASSVAL.WTABLE
and KLVIDOPL.nrec==EXCLASSVAL.CREC
and Exclassval.CClassSeg==EXCLASSSEG.nrec
and lschet.nrec == sumvidop.clsch
! if(exclassseg.name='+',
! 2013==sumvidop.yeark and 5==sumvidop.mes,
! 2013 == sumvidop.yearn and 5 == sumvidop.mesn)
and 2013 == if(exclassseg.name='+',sumvidop.yerk,sumvidop.yarn)
and 5 == if(exclassseg.name='+',sumvidop.mes,sumvidop.mesn)
and klvidopl.vidopl == sumvidop.vidopl
))
;
Подскажите криворукому как связать по условию?