通过查询添加表面记录

时间:2017-06-16 15:28:02

标签: sql ms-access

我需要能够即时创建占位符记录。例如,如果我有 myTable ,那就是

-Apple 1
-Apple 2
-Apple 3
-Pear 1
-Pear 2

我需要一个查询才能吐出来。

-Apple 1
-Apple 2
-Apple 3
-Apple 0
-Pear 1
-Pear 2
-Pear 0

我不希望将实际的空白记录追加到数据中,只是让它出现在查询输出中。这可能吗?

1 个答案:

答案 0 :(得分:2)

考虑使用标量0向记录源添加UNION查询的GROUP BY查询。以下假设表具有 Fruit Val 列。但是,UNION会将您的 Val 列命名为0,1,2,3 ......而UNION ALL会使行无序,最下面两行都是零。

SELECT t.Fruit, t.Val
FROM Fruits t

UNION

SELECT t.Fruit, 0
FROM Fruits t
GROUP BY t.Fruit

要在每个组的最高值下面放置一行,例如 Apple 在1,2,3, - > [4]< - 使用Max(...) + 1骨料:

SELECT t.Fruit, t.Val
FROM Fruits t

UNION    

SELECT t.Fruit, Max(Val) + 1
FROM Fruits t
GROUP BY t.Fruit