1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
select carteclient, date, time, siege, caisse, ticket, sum(canet) as canet, sum(paye) as 'payé',A, B, sum(escp) as escp,
(case
when (A between 1501 and 2500) and (B between 0 and 1500) then sum(((ca-rab+escp)*25)/100)
when (A > 2500) and (B between 0 and 1500) then sum(((ca-rab+escp)*25)/100)
when (A > 2500) and (B between 1501 and 2500) then case when (B - sum(paye))<=1500 then sum(((ca-rab+escp)*25)/100) else sum(((ca-rab+escp)*15)/100) end
when B > 2500 then case when (B - sum(paye))<=2500 then sum(((ca-rab+escp)*15)/100) else sum(((ca-rab+escp)*10)/100) end
end) as escpN
from (select c.date, c.siege, c.caisse, c.ticket, c.time, c.carteclient, c.escp, c.ca, c.rab, sum(c.ca-c.rab+c.escp) as 'caNET', sum(c.ca-c.rab) as 'paye',
(select sum(ca-rab+escp) from tickets.dbo.tb2009 where carteclient = c.carteclient and ((date < c.date) or (date = c.date and time <= c.time))) as A,
(select sum(ca-rab) from tickets.dbo.tb2009 where carteclient = c.carteclient and ((date < c.date) or (date = c.date and time <= c.time))) as B
from tickets.dbo.tb2009 as c
where carteclient like '8811%'
group by carteclient, date, time, siege, caisse, ticket, escp, ca, rab) as matable
group by A, B, carteclient, date, time, siege, caisse, ticket
order by carteclient, date, time, siege, caisse, ticket |
Partager