sql >> データベース >  >> RDS >> Sqlserver

SQL マッピング クエリの選択

    これを試してください:

    ;WITH Subtotals
    AS
    (
      SELECT
        T1.Id, T1.CodeId, SUM(T2.Value) SubTotal  
      FROM Tb1 T1
        JOIN Tb1 T2
           ON T1.CodeId = T2.CodeId
             AND T1.Id >= T2.Id
      GROUP BY T1.Id, T1.CodeId
    )
    SELECT
        S.ID,
        S.CodeID,
        T1.Value,
        CASE WHEN T2.value >= S.Subtotal
             THEN T1.value
             ELSE T1.value - (S.Subtotal - T2.value)
        END UsedValue,
        T2.Value T2Value
    FROM Subtotals S
       JOIN Tb2 T2
          ON S.CodeId = T2.CodeId
       JOIN Tb1 T1
          ON S.Id = T1.Id
    WHERE T2.Value >= S.SubTotal - T1.Value
    

    SQL FIDDLE で結果を参照してください



    1. MySQL:2つのタイムスタンプの差を秒単位で取得する方法

    2. ORA-00913値が多すぎます

    3. PHP PDOを使用したトランザクションは、同時実行性でどの程度正確に機能しますか?

    4. パフォーマンスの驚きと仮定:DATEADD