0

我有 3 个表,我将引用这些表来创建一个表 - 称为最后创建的输出报告- 我需要一些关于我的过程是否有意义的指导:

表 1:批次

批次名称 批号 批次_数量
ABC01 123A 50
ABC02 123B 100
ABC03 123C 20

表 2:Txn_History

批号 Txn_Type Txn_数量
123A 1 5
123A 2 10
123A 3 5
123B 1 10
123B 2 5
123B 3 10
123C 1 5
123C 1 10
123C 2 5
123C 4 10

表 3:Txn_info

Txn_Name Txn_Type Txn_grp
屈服 1 屈服
气泡 2 废料
翘曲 3 废料
弯曲 4 废料

表 4:输出报告

批次名称 批次_数量 屈服 气泡 翘曲 弯曲
ABC01 50 5 10 5 0
ABC02 100 10 5 10 0
ABC03 20 15 5 0 10

我的查询如下:

-- Create Table Output_Report
Select l.lot_name, l.lot_qty, 
sum(case when ti.txn_type = '1' then th.txn_qty yield end) as Yield,
sum(case when ti.txn_type = '2' then th.txn_qty yield end) as Bubble,
sum(case when ti.txn_type = '3' then th.txn_qty yield end) as Warping,
sum(case when ti.txn_type = '4' then th.txn_qty yield end) as Bent
from lot l
join txn_history th on l.lot_id=th.lot_id
join txn_info ti on th.txn_type=ti.txn_type
Group by l.Lot_Name

不幸的是,我没有按预期填充值。我的查询中是否缺少某些内容,或者我是否错误地处理了这种情况?

谢谢您的帮助

4

1 回答 1

0

在这种简单的情况下,您不需要对数据进行透视,您可以让 SSRS 来做。

将数据集查询更改为

Select l.lot_name, l.lot_qty, ti.Txn_Type, ti.Txn_Name, th.txn_qty
from lot l
join txn_history th on l.lot_id=th.lot_id
join txn_info ti on th.txn_type=ti.txn_type

在您的报告中,使用矩阵而不是表格,将 lot_name 字段拖到“行”占位符,将 txn_name 拖到“列”占位符,将 txn_qty 拖到“数据”占位符。如果您想要列的确切顺序,请双击列组(在主设计窗口下)并将排序更改为按 txn_type 而不是 txn_name 排序。

要添加 lot_qty,请右键单击 lot_no 单元格并执行“插入列,组内 - 右”,然后在新单元格中从下拉列表中选择 lot_qty。

这是从内存中完成的,因此可能不是 100%。如果这不起作用,请发表评论,我将模拟设计,以便您了解它的外观。

于 2021-06-22T16:25:08.603 回答