sql >> Databáze >  >> RDS >> Sqlserver

Dotaz na zobrazení utracených kreditů z transakční tabulky

zkuste toto:

WITH Credits_added AS (
    SELECT CreditLogId, OccurredOn, credits
    , SUM(credits) OVER (ORDER BY CreditLogId) - credits AS b --before
    , SUM(credits) OVER (ORDER BY CreditLogId) AS a --after
    , GivenByUserCode
    FROM @CreditLogs
    WHERE Credits > 0)
, Credits_spent AS (
    SELECT CreditLogId, OccurredOn, credits
    , SUM(credits) OVER (ORDER BY CreditLogId) * -1 + credits AS b
    , SUM(credits) OVER (ORDER BY CreditLogId) * -1 AS a
    FROM @CreditLogs
    WHERE Credits < 0)
SELECT s.CreditLogId, s.OccurredOn
, CASE WHEN a.a > s.a THEN s.a ELSE a.a END - CASE WHEN a.b > s.b THEN a.b ELSE s.b END AS Credits 
, a.GivenByUserCode
FROM Credits_added AS a
INNER JOIN Credits_spent AS s ON a.a > s.b AND s.a > a.b


  1. Výběr řádků z tabulky, které mají stejnou hodnotu pro jedno pole

  2. Jak načíst řádky v požadovaném pořadí v mysql

  3. export využití paměti z databáze do csv v php

  4. „0000-00-00 00:00:00“ nelze reprezentovat jako java.sql. Chyba časového razítka