
Сергей
20.04.2018
23:54:28
да простят меня админы
SELECT IF(af.ShelfID="0","",af.ShelfID) AS ShelfID , GetAddrkol_vo(a.code) as NewGetKol_vo,A.Kol_Vo-GetAddrkol_vo(a.code) as NewDiff, spay.name as paytype, scl.name as storecl, st2.color as clientcolor,concat(a.modev+0) as `advmodev`, concat(a.typev+0) as `advtypev`,concat(a.mode+0) as `advmode`, concat(a.type+0) as `advtype`, stateType.name as `advtypename`, stateMode.name as `advmodename`, B.DATE_BEG,case when (g.DocId is null) or (d.Type=14) then C.COMPANY else case when d.Type=15 then Concat('POS-терминал, с/н: ',(select SerialNo from cashregister where code=CAST(dd.FieldValue AS SIGNED) )) else case when d.Type=12 then Concat('Кассовый аппарат, с/н: ',(select SerialNo from cashregister where code=CAST(dd.FieldValue AS SIGNED)/*cast(replace(substring(dd.FieldValue,5,8),0,'') as signed)*/ )) else CASE WHEN d.Type=16 THEN CONCAT('Автомобиль, г/н: ',(SELECT number FROM cars WHERE CODE=CAST(dd.FieldValue AS SIGNED)/*cast(replace(substring(dd.FieldValue,5,8),0,'') as signed)*/ )) ELSE CASE WHEN d.Type IN (11,20) THEN IFNULL(dd.FieldValue,'') ELSE '' END END END END END AS Company, M.PLACE, M.STATION as MSTATION, M.AREA, a.zakaz, a.number,case when (g.DocId is null) or (d.Type=14) then a.target else case when d.Type=15 then Concat('POS-терминал № ',ifnull(dd.FieldValue,'')) else case when d.Type=12 then Concat('Кассовый аппарат № ',ifnull(dd.FieldValue,'')) else CASE WHEN d.Type=16 THEN CONCAT('Автомобиль № ',ifnull(dd.FieldValue,'')) ELSE CASE WHEN d.Type=11 THEN IFNULL(dd.FieldValue,'') else '' end end end end end as target, /*case when g.docid is null then a.target else ifnull(dd.FieldValue,'') end as target,*/ a.name, a.address, a.station, a.phone,a.date_put, a.time_put, concat(a.mode+0) as mode, concat(a.type+0) as type, a.price, a.kurier, a.message, a.flag, a.client_id,a.code, a.vlog, a.kurier1, a.date_v, a.time_v, a.mass, concat(a.modev+0) as modev, concat(a.typev+0) as typev, a.pricev, a.messagev, a.massv, a.str, a.price_k, a.lusr, a.ldtime, a.poruch, a.direct, a.time_put_min, a.time_put_max,case when (g.docid is null) or (d.Type=14) then a.rur else ifnull(d.DocSum,0) end as rur, a.date_putn, a.out, a.sent,a.pricev_k, a.newdate_beg, a.Waited, a.Kol_vo, a.ToKurier, a.StrBarCode, a.Podrazd, getaddrkol_vo(a.code) as getkol_vo, a.PrintOrder, a.Target2, a.Name2, a.Address2, a.Station2, a.Phone2, a.date_putn2, a.time_put_min2, a.time_put_max2, a.CL,a.kurier_pay, a.kurier_pay_v, a.Kurier_pay_sum, a.Kurier_pay_sum_v, a.TownFrom, a.TownTo, a.FL, a.ReceiverPays, a.InfoDate, a.InfoMan, a.SendMoneyAct, a.ZipCode, a.transporter, a.State1, a.InshPrice, a.kurier_b, a.kurier_pay_b,a.Kurier_pay_sum_b, a.StorePrice, a.NalTrans, TOK.NAME as TOKNAME,A.PRICE+A.PRICEV as PRICEFULL, B.PrintForm, A.Kol_Vo-A.GetKol_vo as Diff, K1.NAME as k1name, cast(ifnull(l1.color,16777215) as signed) as color , c.code as ccode, c.valutaid, c1.name as c1name, t1.name as t1name, c2.name as c2name, t2.name as t2name, ifnull(a.target2, c.company) as target2_1, ifnull(a.name2,ifnull(f.fio, c.name)) as name2_1, ifnull(a.address2, ifnull(o.address, c.address)) as address2_1, m2.station as station2_1, m2.area as area2, ifnull(a.phone2, ifnull(f.phone, c.phone)) as phone2_1, Kurier_pay_sum+Kurier_pay_sum_v as Kurier_pay_sum_s, trans.caption as transporter_caption, st1.name as st1name, st1.color as st1color, round( ROUND(IFNULL(a.rur, 0), 2)*(a.time_put IS NOT NULL)*CASE WHEN (a.Number=0) AND (a.StrBarcode='') THEN 0 ELSE 1 END-ROUND((a.price+a.pricev), 2)*(c.NoPriceInRur='T')*(a.ReceiverPays='F'), 2) as SumToPay, tok.driver as k1Driver, case when (g.docid is null) or (d.Type=14) then (ifnull(a.rur, 0)+(a.ReceiverPays='T')*(a.price+a.pricev))+0.0 else d.DocSum end as AddressTotalSum, af.distance, c.createtrans, g.code as gcode,g.made,g.date_put as gdate_put, g.kol_vo as gKol_vo, g.date_beg as gdate_beg, g.state as gstate, s.name as sname, s.color as scolor, s2.name as s2name, s2.color as s2color, s3.name as s3name, kr.name as KurrName, s3.color as s3color, g.act_number, g.DocId, s4.color as doccolor,ifnull(dd.FieldValue,'') as DocName, g.kurierstatetime,
g.kurierstate, ifnull(g.kuriermoney,round((ifnull(a.rur, 0)+( ((b.nal='T')*(NOT EXISTS (SELECT CODE FROM pays p WHERE p.zakaz=b.code))) or (a.ReceiverPays='T'))*(a.price+a.pricev)), 2)) as kuriermoney, -100 as Period
From givn g left join address a on a.code=g.address left join ZAKAZ B on A.ZAKAZ=B.CODE left join CLIENTS C on B.SOURCE=C.CODE left join METRO M on A.STATION=M.CODE left join `lines` l1 on m.line=l1.code left join transporter trans on a.transporter=trans.code left join KURIER TOK on A.ToKurier=TOK.CODE left join KURIER K1 on A.Kurier=K1.CODE left join town t1 on a.townfrom=t1.code left join city c1 on t1.city=c1.code left join town t2 on a.townto=t2.code left join city c2 on t2.city=c2.code left join FIO F on F.CODE=B.FIO left join OTDEL O on O.CODE=F.OTDEL left join METRO M2 on ifnull(a.station2, case when o.address is null then c.station else null end)=M2.CODE left join states st1 on st1.statetype=15 and st1.statecode=a.state1 LEFT JOIN states stateType ON stateType.statetype=18 AND a.`type`+0=stateType.`StateCode` LEFT JOIN states stateMode ON stateMode.statetype=17 AND a.`mode`+0=stateMode.`StateCode` LEFT JOIN states st2 ON st2.statetype=4 AND c.state=st2.statecode LEFT JOIN states spay on spay.statetype=39 and spay.statecode=a.paymenttype LEFT JOIN store scl on scl.code=a.cl LEFT JOIN addressfld af ON a.code=af.address left join docs d on g.docid=d.code left join docdetail dd on d.code=dd.docid /*and dd.FieldName='DocName'*/ left join states s4 on s4.statetype=13 and s4.statecode=d.type left join kurier kr on g.kurier=kr.code left join states s on s.statetype=8 and s.statecode=g.state left join states s2 on s2.statetype=16 and s2.statecode=g.state2 left join states s3 on s3.statetype=8 and s3.statecode=g.kurierstate join ((select code from givn where date_beg='2018-04-21' and kurier=1) union distinct (select code from givn where date_beg<'2018-04-21' And State=1 and kurier=1)) gg1 on gg1.code=g.code
WHERE 1=1
and g.kurier=1 and g.DocId=179513
order by g.State,a.zakaz,a.number
это типичный запрос