Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <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>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
 

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