在Microsoft报表查看器(SSRS 2012)中连接两个表

本文关键字:连接 两个 SSRS 报表 Microsoft 2012 | 更新日期: 2023-09-27 18:07:29

我有两个数据库表

发票表(PK InvoiceNo)

InvoiceDate | InvoiceNo |  Name |  Class | AmountPaid
  2014-6-5  |   B001    |  ABC  |   E1   |   1500.00
  2014-6-5  |   B002    |  BCD  |   E1   |   2000.00
  2014-6-5  |   B003    |  CDE  |   E3   |   1000.00
  2014-6-5  |   B004    |  ABC  |   E3   |   3000.00
  2014-6-6  |   B005    |  BCD  |   E2   |   5000.00
  2014-6-6  |   B006    |  CCD  |   E1   |   2000.00

费用表(PK日期,说明)

    Date    | Description |  Cost 
  2014-6-5  |  Lunch      | 150.00 
  2014-6-5  |  SoftDrink  |  50.00 
  2014-6-6  |  BusFair    |  10.00 

我想用这两个表创建一个报告。我期望的是

InvoiceDate | InvoiceNo |  Name |  Class | AmountPaid | Description  |  Cost 
  2014-6-5  |   B001    |  ABC  |   E1   |   1500.00  |   Lunch      | 150.00
            |   B002    |  BCD  |   E1   |   2000.00  |   SoftDrink  |  50.00
            |   B003    |  CDE  |   E3   |   1000.00  |     
            |   B004    |  ABC  |   E3   |   3000.00  |
  2014-6-6  |   B005    |  BCD  |   E2   |   5000.00  |   BusFair    |  10.00
            |   B006    |  CCD  |   E1   |   2000.00  |

但是我的输出是这样的

 InvoiceDate | InvoiceNo |  Name |  Class | AmountPaid | Description  |  Cost 
  2014-6-5  |   B001    |  ABC  |   E1   |   1500.00  |   Lunch      | 150.00
            |   B002    |  BCD  |   E1   |   2000.00  |   Lunch      | 150.00
            |   B003    |  CDE  |   E3   |   1000.00  |   Lunch      | 150.00
            |   B004    |  ABC  |   E3   |   3000.00  |   Lunch      | 150.00
            |   B001    |  ABC  |   E1   |   1500.00  |   SoftDrink  |  50.00
            |   B002    |  BCD  |   E1   |   2000.00  |   SoftDrink  |  50.00
            |   B003    |  CDE  |   E3   |   1000.00  |   SoftDrink  |  50.00
            |   B004    |  ABC  |   E3   |   3000.00  |   SoftDrink  |  50.00
  2014-6-6  |   B005    |  BCD  |   E2   |   5000.00  |   BusFair    |  10.00
            |   B006    |  CCD  |   E1   |   2000.00  |   BusFair    |  10.00

在Microsoft报表查看器(SSRS 2012)中连接两个表

你遇到了两个问题:

  1. 您需要为InvoiceDate和Description添加一个SSRS组,并以与您似乎已经为InvoiceDate所做的相同的方式配置表上的Description字段(因此它只出现在组行上,而不是在详细信息中)。

  2. 您的"费用"表不应该使用日期+描述作为PK。它应该有自己的"ExpenceID"类型字段,并将"InvoiceNO"FK返回到您的"发票"表。如果没有合适的键,只连接"Date"将导致笛卡尔。

请注意,#2比#1更重要,直到你解决你的数据问题,你将有一个糟糕的时间。