小编GIS*_*ers的帖子

在SQL中将列的子集重置为其默认值?

我正在寻找一个SQL语句或存储过程来将一行中的列子集的值重置为其默认值(如此定义)或者为null.行中还有其他列我不想重置,否则我可以删除该行并创建一个新的行,该行将使用各种默认值进行初始化...这就是我想要的效果,但仅限于列的特定子集.

从概念上讲,我在寻找

UPDATE eirProj 
SET <all columns named like 'paf%'> TO THEIR DEFAULT OR NULL
WHERE prjId=@prjId
Run Code Online (Sandbox Code Playgroud)

或至少

UPDATE eirProj 
SET pafAuth=<pafAuth default or NULL>, pafComp=<pafComp default or NULL>, paf...
WHERE prjId=@prjId
Run Code Online (Sandbox Code Playgroud)

我试图避免在两个地方冗余地对默认值进行硬编码(表定义和此重置代码).理想情况下但不那么重要我想避免硬编码列名,因此如果通过添加,删除或重命名列来更改子集,它仍然可以工作.

我正在使用SQL Server和特定于T-SQL的解决方案,如果这是唯一的方法.

sql defaults

1
推荐指数
1
解决办法
2034
查看次数

在报告中,仅在第一行后重复某些列

我的任务是在Access中复制在Filemaker数据库中运行的特定报告.输出应如下所示:

NAME       DATE       ITEM(S)
Joe      5/2/2012     Gum
                      Tape
                      Soap
Ann      5/1/2012     Paper
Bob      5/1/2012     Pen
                      Paper

记录看起来像这样(这是一个加入"person"和"items"表的查询,它们具有1:多的关系):

NAME       DATE       ITEM(S)
Joe      5/2/2012     Gum
Joe      5/2/2012     Tape
Joe      5/2/2012     Soap
Ann      5/1/2012     Paper
Bob      5/1/2012     Pen
Bob      5/1/2012     Paper

在报告中,我需要第一个ITEM始终显示在第一个完整的行中; 如果有更多项目,则只应在后续行中列出项目(不应重复NAME和DATE值).

我不太确定哪棵树吠起来:

  • 在RDL中我可以逐行有条件地隐藏报表项...我可以在Access报表中这样做(在Access连续表单中,我认为不能这样做 - Visible设置同时适用于所有行,I认为)
  • 我可以使用Group执行此操作,将第一个完整行放在Group标题中,将后续行放在Detail部分中吗?如果是这样,我不确定如何获得标题中的第一项,以及如何在详细信息部分中抑制第一项
  • 其他想法?我是否需要考虑不同的记录来源或来源?

到目前为止,我唯一能管理的是在人员中进行分组,在组头中使用NAME和DATE,然后将所有项目放在详细信息中,但这并不是我被要求做的事情.

感谢期待"a-ha!".

克里斯

ms-access reporting

1
推荐指数
1
解决办法
6301
查看次数

标签 统计

defaults ×1

ms-access ×1

reporting ×1

sql ×1