IDINT,
otherID INT,
keyID INT,
weekName VARCHAR(20),
weekName2 VARCHAR(20),
Num1 INT,
Num2 INT
)
INSERT INTO #temp
SELECT 1, 19, 0, '星期日', '星期日', 0, 0 UNION ALL
SELECT 2, 19, 1, '星期一', '星期一', 0, 0 UNION ALL
SELECT 3, 19, 1, '星期二', '星期二', 0, 0 UNION ALL
SELECT 4, 19, 1, '星期三', '星期三', 0, 0 UNION ALL
SELECT 5, 19, 1, '星期四', '星期四', 0, 0 UNION ALL
SELECT 6, 19, 0, '星期五', '星期五', 0, 0 UNION ALL
SELECT 7, 19, 0, '星期六', '星期六', 0, 0 UNION ALL
SELECT 8, 20, 0, '星期日', '星期日', 0, 0
SELECT
ID,
otherID,
keyID,
weekName,
weekName2,
Num1,
Num2,
0 AS OrderByFlag
FROM
#temp
UNION ALL
SELECT
0 AS id,
otherID,
keyID,
'小计',
'小计',
SUM(Num1),
SUM(Num2),
1 AS OrderByFlag
FROM
#temp
GROUP BY
otherID,
keyID
ORDER BY
otherID, OrderByFlag
ID otherID keyID weekName weekName2Num1Num2OrderByFlag
----------- ----------- ----------- -------------------- -------------------- ----------- ----------- -----------
1 19 0 星期日 星期日 0 0 0
2 19 1 星期一 星期一 0 0 0
3 19 1 星期二 星期二 0 0 0
4 19 1 星期三 星期三 0 0 0
5 19 1 星期四 星期四 0 0 0
6 19 0 星期五 星期五 0 0 0
7 19 0 星期六 星期六 0 0 0
0 19 0 小计 小计 0 0 1
0 19 1 小计 小计 0 0 1
8 20 0 星期日 星期日 0 0 0
0 20 0 小计 小计 0 0 1
(11 行受影响)
多 SELECT 了一个 OrderByFlag 用于排序。
SELECT *FROM
(
SELECT TOP 10 *
FROM Tbl
ORDER BY Id DESC
) t
ORDER BY Id ASE
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)