Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>Something like this works in SQL Server. I don't have MySQL to test but you can probably convert once you see the logic.</p> <pre><code>create table so (sodate datetime, sosize int, somarked varchar(1)) insert into so (sodate,sosize,somarked) values ('1-jan-2010',3,'X') insert into so (sodate,sosize,somarked) values ('2-jan-2010',1,'X') insert into so (sodate,sosize,somarked) values ('3-jan-2010',2,'X') insert into so (sodate,sosize,somarked) values ('4-jan-2010',0,null) insert into so (sodate,sosize,somarked) values ('5-jan-2010',2,null) insert into so (sodate,sosize,somarked) values ('6-jan-2010',1,null) insert into so (sodate,sosize,somarked) values ('6-jan-2010',4,null) insert into so (sodate,sosize,somarked) values ('6-jan-2010',1,null) insert into so (sodate,sosize,somarked) values ('7-jan-2010',3,'X') insert into so (sodate,sosize,somarked) values ('8-jan-2010',3,'X') insert into so (sodate,sosize,somarked) values ('9-jan-2010',2,null) insert into so (sodate,sosize,somarked) values ('10-jan-2010',2,'X') insert into so (sodate,sosize,somarked) values ('11-jan-2010',1,'X') insert into so (sodate,sosize,somarked) values ('12-jan-2010',2,null) insert into so (sodate,sosize,somarked) values ('13-jan-2010',3,'X') select so.sodate ,sum(so.sosize) as Total ,isnull(sum(so.sosize),0) - isnull(min(so2.sosize),0) as DiffFromYesterday ,sum(case when so.somarked = 'X' then so.sosize end) as MarkedThisDay from so left join (select so.sodate,sum(so.sosize) sosize from so group by sodate) so2 on dateadd(dd,1,so2.sodate) = so.sodate group by so.sodate </code></pre> <p>..and after installing mysql this seems to work there...</p> <pre><code>select so.sodate ,sum(so.sosize) as Total ,ifnull(sum(so.sosize),0) - ifnull(min(so2.sosize),0) as DiffFromYesterday ,sum(case when so.somarked = 'X' then so.sosize end) as MarkedThisDay from so left join (select so.sodate,sum(so.sosize) sosize from so group by sodate) so2 on (so2.sodate + INTERVAL 1 day )= so.sodate group by so.sodate ; </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload