我正在将表R5PARTS和R5STOCK与R5TRANSLINES连接起来。
当事务类型TRL_TYPE ='I'且匹配联接条件时,我想提取MAX(TRL_DATE)(来自R5TRANSLINES) 这样,我可以知道零件的上次使用时间。
我有什么问题? 并非所有部件都已使用,因此在R5TRANSLINES上没有此类事务'I'的行。 从逻辑上讲,当我使用WHERE TRL_TYPE ='I'进行过滤时,该零件没有任何结果。
是否可以使用工作区,所以即使表R5TRANSLINES上不存在TRALL_TYPE ='I'的行,ALL SELECTED LINES也会显示该行? (在这种情况下,字段TRL_DATE将被固定为... '01 -01-1900')
从我的研究中,我认为它应该与简单的“左连接R5TRANSLINES”一起使用,但效果不佳...
这是我的代码:
declare @startdate date = '2010-01-01'
declare @enddate date = '2020-01-01'
SELECT RS.STO_PART, Rs.STO_PART_ORG, RS.STO_STORE, RP.PAR_DESC, ISNULL(RS.STO_AVGPRICE, 0) as 'STO_AVGPRICE',
MAX(RT.TRL_DATE) as 'LAST_USED', RT.TRL_TYPE
FROM R5STOCK RS inner join R5PARTS RP on RP.PAR_CODE = RS.STO_PART and RS.STO_PART_ORG = RP.PAR_ORG
left join R5TRANSLINES RT on (RT.TRL_PART = RP.PAR_CODE and RP.PAR_ORG = RT.TRL_PART_ORG and TRL_TYPE = 'I')
WHERE RP.PAR_NOTUSED != '+' and RS.STO_STORE in ('116-01', '138-05', '156-01', '216-01', '228-01', '282-01') and TRL_PART = '116-MEU-NR 100-25-3.3547'
GROUP BY RP.PAR_CODE, RS.STO_PART, RS.STO_PART_ORG, RS.STO_STORE, RP.PAR_DESC, RS.STO_AVGPRICE, RT.TRL_TYPE
ORDER BY RS.STO_PART
编辑:简化查询并添加“重复”帖子中的所有建议。但是仍然无法显示所有需要的行。