【问题标题】:I need to generate two letters to a person (one for each address). How can I accomplish this?我需要为一个人生成两封信(每个地址一个)。我怎样才能做到这一点?
【发布时间】:2012-01-09 15:32:40
【问题描述】:

我想为一个人创建两个字母。一封信将发送到一个人的旧地址,另一封将发送到一个人的新地址。这是两个不同的报告,SQL 略有不同,还是有办法用一个报告简单地创建两个字母?

【问题讨论】:

  • 如果唯一不同的是地址,那么一份报告就可以解决问题。只需在报告中包含地址字段并让它在运行时填充。这两个地址是在不同的记录中,还是在同一记录的不同字段中?
  • 请提供更多信息。数据库(表等)结构。
  • 目前,两个地址都在单独字段的单个记录中。一个叫OldAddress,另一个叫NewAddress
  • 我不明白我应该做什么。也许我看错了。我以前从未在SSRS写过信。截至目前,我只是显示一个包含他们地址的文本框。但是,我不确定如何为这两个字段设置它,但只有一个显示。我唯一能想到的就是使用 If 语句,上面写着“如果页面是奇数,则发送到旧地址。如果页面是偶数,则发送到新地址。”只要每个字母都是一页,这应该正确吗?还是有更好的办法?

标签: sql reporting-services reporting ssrs-2008


【解决方案1】:

在标准化数据库中,您将在两条单独的记录中显示旧地址和新地址,可能在通过人员 ID 或类似内容链接的相关表中。您应该查找并阅读有关规范化的信息。当然,您应该至少以第三范式为目标。

对于您当前的问题,您可以创建一个联合视图

select NewAddress As Address from TableName
union
select OldAddress as Address from TableName

然后报告视图中的值。 您可能还希望拥有更多字段,例如人名。 您在第一个 select 语句中选择的字段必须与第二个 select 语句中的字段编号和类型相同。 此外,您仍然可以添加 where 子句和 order by 子句。

在线查看工会运营商。

希望对你有帮助

哈夫

【讨论】:

    【解决方案2】:

    您可以使用以下几种方法:

    • 合并查询中的新旧地址,然后使用每个数据集行的单个详细信息部分报告查询。
    • 或者,报告表外并包含两个详细信息行,旧地址和新地址各一个,并根据相关地址是否为 NULL 有条件地抑制每个部分。

    【讨论】:

      猜你喜欢
      • 2022-11-09
      • 1970-01-01
      • 2019-08-16
      • 2023-02-09
      • 2019-09-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-07
      • 1970-01-01
      相关资源
      最近更新 更多