我有excel表单列[internet orders]值FN75657,FN83747,FN83673等。我必须使用名为[internet orders]的sql表查询这些订单号,其中包含[订货号],[金额],[凭证类型] [日期]列。当我在SQL中查询单个订单号时,其中cluase [订单号] = ' FN75657'我收到的结果是[订单号] FN75657 [documnet type]' order' ,如果退款,它将显示为[订单号] FN75657-RF-1和[凭证类型] - ' credit'。我不想一个接一个地做,因为这需要很长时间。
SELECT
[Internet Order Reference]
,[Amount]
,[Return Reason Code]
,[Shipping Amount]
,[Payment Fee Amount Incl_ Tax]
,[Document Type]
,[DateTime Created]
,[Country]
,[Email]
FROM [vets$ internet Orders]
where[Country]='united kingdom'and
[Original Order No_]='FN24680101'
所以我创建了临时表并插入了excel列并完成了连接,但是问题是我无法获得退款结果,因为它只与订单号匹配但没有获得退款结果。有没有办法在SQL中执行它,或者我们必须使用SSIS。提前谢谢。
来自注释的SQL,显示临时表和基表的连接。
SELECT [Internet Order Reference]
,[Ship-to Name]
,[Amount]
,[Return Reason Code]
,[Shipping Amount]
,[Document Type]
,[DateTime Created]
FROM [TBW_BI].[dbo].[vets$Internet Orders] as h
INNER JOIN #temp10b as t
on h.[Internet Order Reference] = t.[internet_Order_Reference]
答案 0 :(得分:0)
我认为这就是你之后......
SELECT [Internet Order Reference]
,[Ship-to Name]
,[Amount]
,[Return Reason Code]
,[Shipping Amount]
,[Document Type]
,[DateTime Created]
FROM [TBW_BI].[dbo].[vets$Internet Orders] as h
INNER JOIN #temp10b as t
on h.[Internet Order Reference] like concat(t.[internet_Order_Reference],'*')
实质上它表示加入时 您的基表的[互联网订单参考]就像来自excel的数字
实施例
' FN75657-RF-1'喜欢' FN75657 *'
因此FN75657的所有组合都将加入,包括回报。我们可以更明确地使用或......例如......
on ((h.[Internet Order Reference] = t.[internet_Order_Reference])
OR (h.[Internet Order Reference] like concat(t.[internet_Order_Reference],'-RF-%'))
以便只发生完全匹配,然后包含-RF-%后缀的订单。
on ((h.[Internet Order Reference] = t.[internet_Order_Reference])
OR (h.[Internet Order Reference] like t.[internet_Order_Reference]+'-RF-%'))