【问题标题】:Add superficial record through query通过查询添加表面记录
【发布时间】:2017-06-17 01:25:54
【问题描述】:

我需要能够即时创建占位符记录。例如,如果我有 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

我宁愿不必将实际的空白记录附加到数据中,只需将其显示在查询输出中即可。这可能吗?

【问题讨论】:

  • 您需要能够编辑记录吗?以及如何使用/呈现“查询输出”?这很重要,因为没有简单的内置功能可以将记录动态添加到标准查询输出。它很可能需要“技巧”和/或变通方法,老实说,这可能比仅仅创建临时表和插入记录更有效。
  • adding additional rows 的相关问题,但它对于多行是禁止的,并且不支持动态行数或数据值。
  • 在第一次从表中填充它之后,您可以将记录添加到断开连接的 ADO 记录集中。 Here's a related question 有相关代码,事件虽然具体原因不同。
  • C 帕金斯,古斯塔夫。 “假”记录不会用于编辑,纯粹是信息性的。我将使用“0”值来关闭不同的连接表,并以不可编辑的形式显示给用户。
  • 不清楚。

标签: sql ms-access


【解决方案1】:

考虑使用标量 0 将 GROUP BY 查询添加到记录源的 UNION 查询。下面假设表具有 FruitVal 列。但是,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

【讨论】:

    猜你喜欢
    • 2013-11-09
    • 1970-01-01
    • 1970-01-01
    • 2016-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-20
    • 1970-01-01
    相关资源
    最近更新 更多