sql >> Database teknologi >  >> RDS >> Mysql

Deltag i 2 tabeller om dynamisk skiftende kolonne

Dette er smertefuldt at gøre i MySQL af et par grunde. For det første har MySQL ikke særlig god støtte til kumulative summer, hvilket er det, du vil sammenligne.

Og for det andet er dit resultatsæt en lille smule svagt. Det giver mere mening at vise alle ins poster, der bidrager til hver outs optage, ikke kun én af dem.

Til dette formål kan du bruge en joinforbindelse på kumulative summer, som ser sådan ud:

select o.*, (o.to_quantity  - o.quantity) as from_quantity,
       i.*
from (select o.*,
             (select sum(o2.quantity)
              from outs o2
              where o2.id <= o.id
             ) as to_quantity
      from outs o
     ) o join
     (select i.*,
             (select sum(i2.quantity)
              from ins i2
              where i2.id <= i.id
             ) as to_quantity
      from ins i
     ) i
     on (o.to_quantity  - o.quantity) < i.to_quantity and
        o.to_quantity > (i.to_quantity  - i.quantity)

Her er SQL Fiddle.



  1. Hvordan returnerer jeg flere resultatsæt med SqlCommand?

  2. Hvordan får jeg en kolonne med fortløbende, stigende tal, uden at der mangler nogle tal?

  3. MySQL GROUP BY dato ved brug af datetime

  4. Hvornår skal du bruge TEXT i mysql i stedet for VARCHAR