我需要更新商品字段“供应商编号”。根据“来源编号”字段的最新结果表“项目分类帐条目”
我试图在两个表(项目和项目分类帐条目)之间进行内部联接,但是此查询的某些结果不是最新的。
因此,如果我针对特定情况进行此查询,
select top(1)
[MR$Item].[No_],
[MR$Item Ledger Entry].[Item No_],
[MR$Item].[Vendor No_],
[MR$Item Ledger Entry].[Source No_],
[MR$Item Ledger Entry].[Entry Type],
[MR$Item Ledger Entry].[Posting Date]
from [MR$Item]
left outer join [MR$Item Ledger Entry] on [MR$Item].[No_] = [MR$Item Ledger Entry].[Item No_]
where
[MR$Item Ledger Entry].[Entry Type] = 0
and [MR$Item].[Vendor No_] <> [MR$Item Ledger Entry].[Source No_]
AND year([MR$Item Ledger Entry].[Posting Date])>=2018
AND [MR$Item].[No_] = '3510100011'
order by [MR$Item Ledger Entry].[Posting Date] DESC
我得到这个结果
No_ Item No_ Vendor No_ Source No_ Entry Type Posting Date
3510100011 3510100011 505881497 172140064 0 2018-09-27 00:00:00.000
但是做这个简单的选择,我可以看到最后的结果不正确
select top(1)
[MR$Item Ledger Entry].[Item No_],
[MR$Item Ledger Entry].[Source No_],
[MR$Item Ledger Entry].[Entry Type],
[MR$Item Ledger Entry].[Posting Date]
from [MR$Item Ledger Entry]
where
[MR$Item Ledger Entry].[Entry Type] = 0 AND
year([MR$Item Ledger Entry].[Posting Date]) >= 2018 AND
[MR$Item Ledger Entry].[Item No_] = '3510100011'
order by [MR$Item Ledger Entry].[Posting Date] DESC
结果是
Item No_ Source No_ Entry Type Posting Date
3510100011 508606977 0 2018-01-09 00:00:00.000
正确的结果是项目“ 3510100011”,我应该使用数字“ 508606977”。
我在做什么错了?
答案 0 :(得分:-1)
因为在查询中,您输入了:
AND [MR$Item Ledger Entry].[Item No_]='3510100011'
而且,您可以将左联接更改为内部联接,因为您正在做[MR $ Item Ledger Entry]表上的位置