Excel to SQL获取报告

时间:2017-05-03 15:57:32

标签: sql sql-server-2012

我有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'

this is if i do one by one

所以我创建了临时表并插入了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]

1 个答案:

答案 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-%'))