在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
你遇到了两个问题:
-
您需要为InvoiceDate和Description添加一个SSRS组,并以与您似乎已经为InvoiceDate所做的相同的方式配置表上的Description字段(因此它只出现在组行上,而不是在详细信息中)。
-
您的"费用"表不应该使用日期+描述作为PK。它应该有自己的"ExpenceID"类型字段,并将"InvoiceNO"FK返回到您的"发票"表。如果没有合适的键,只连接"Date"将导致笛卡尔。
请注意,#2比#1更重要,直到你解决你的数据问题,你将有一个糟糕的时间。