我想在表的第二行插入值。表格的第一行是有价值的,而且是常数。每行中的“总计”为((上一行的总计+条目)-退出)。
但是它不计算总的第一行(常数)。
我的代码是:
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。
答案 0 :(得分:2)
基于小时描述,总计的计算应如下所示:
>>>from struct import pack , unpack
>>>x=pack('h',1850)
>>>x
b':\x07'
>>>len(x)
2
>>>unpack('h',x)
1850
不过,我不太确定这与他提出的其他问题是否吻合。