我有两个表,其中包含我需要使用的以下字段:
- 主数据:主标识(主键)
- 物料数据:板条箱标识、主标识(FK)、物料类型标识、物料类型说明、物料日期
Item_Type_ID有几个不同的数值,例如10、20、30、40、50... 100...等。每个数值代表一种类型,例如蔬菜、水果、谷物、肉类等。
Item_Type_Description的内容如下:水果、蔬菜、谷物、肉类等
Item_Date是标识该特定物品(基于Item_ID)何时被添加到板条箱的单个日期。
请注意,每个Master_ID只能有一个唯一的Item_Type_ID。也就是说,Item_Type_ID '10'只能与Master_ID '1234'关联一次。一个Item_Type_ID可以与多个不同的Master_ID关联,但每个Master_ID只能关联一次。
我遇到的问题是,我可以获得合并的结果,但对于每个Item_Type_ID,都将创建一个不同的记录/行。
下面是我到目前为止生成的代码,它给出了不正确的结果:
USE Shipping
GO
BEGIN
SELECT
vmi.master_id
,CASE
WHEN vid.item_type_id = 10 THEN vid_item_date
ELSE NULL
END as 'Fruit_Item_Date'
,CASE
WHEN vid.item_type_id = 20 THEN vid_item_date
ELSE NULL
END as 'Veggie_Item_Date'
,CASE
WHEN vid.item_type_id = 30 THEN vid_item_date
ELSE NULL
END as 'Grains_Item_Date'
,CASE
WHEN vid.item_type_id = 40 THEN vid_item_date
ELSE NULL
END as 'Meat_Item_Date'
FROM v_master_data vmi
LEFT JOIN v_item_data vid ON vmi.master_id = vid.master_id
WHERE vid.item_type_id IN (10,20,30,40)
END
GO
任何输入,指针,援助,方向,建议,是非常感谢。
运行SQL Server 2016,可通过SQL Server管理工作室v18访问。
1条答案
按热度按时间j9per5c41#
也许这会给予你一点提示
枢轴
条件聚合
条件聚合提供了更多的灵活性,并且通常性能更高。