插入表格的第二行

时间:2019-02-23 11:41:21

标签: sql sql-server

我想在表的第二行插入值。表格的第一行是有价值的,而且是常数。每行中的“总计”为((上一行的总计+条目)-退出)。

但是它不计算总的第一行(常数)。

我的代码是:

INSERT INTO MyTable([MDate], [MEntry], [MExit], [MTotal])
    SELECT 
        EDate, SUM(count1) EntryC, SUM(count2) ExitC, 
        SUM(SUM(count1) - SUM(count2)) OVER (ORDER BY EDate) Total1
    FROM
        (SELECT 
             SUBSTRING(EntryDate, 1, 4) EDate, 
             COUNT(*) count1, 0 count2, 0t
         FROM 
             [dbo].[Dash]
         WHERE
             SUBSTRING(EntryDate, 1, 4) > 2010
         GROUP BY 
             SUBSTRING(EntryDate, 1, 4)

         UNION

         SELECT  
             SUBSTRING(CntEndDate, 1, 4) EDate, 0 count1,
             COUNT(*) count2, 0t
         FROM 
             [dbo].[Dash]
         WHERE  
             PostNo <> 0 AND EmpTypeNo = 7 
         GROUP BY 
             SUBSTRING(CntEndDate, 1, 4)) A 
    GROUP BY 
        EDate    

我的输出是:

MDate  MEntry  MExit  Total
----------------------------
2010    110     107    549
2011    80      41     850

Total = 850是错误的,应该是588。

1 个答案:

答案 0 :(得分:2)

基于小时描述,总计的计算应如下所示:

>>>from struct import pack , unpack
>>>x=pack('h',1850)
>>>x
b':\x07'
>>>len(x)
2
>>>unpack('h',x)
1850

不过,我不太确定这与他提出的其他问题是否吻合。