0

我经常使用 Excel 中的函数(现在是旧版)从 SQL Server 获取数据,在其中我将实际的 SQL 语句粘贴到 Excel 工作表中,它工作正常。我一直在研究如何处理我的查询,这些查询具有每次运行报告时都需要更改的日期参数,起初在 Excel 中使用 Microsoft Query 似乎是最好的选择。这将使用'?而不是日期本身,并允许添加参数。每当我尝试使用以下查询执行此操作时,我都会收到错误“无法以图形方式显示的查询中不允许使用参数”。老实说,我不知道这意味着什么,但会重视任何投入。我的查询如下。谢谢

SELECT E.TEAM_MEMBER_NAME AS 'PURCHASER',
       M.DEPARTMENT, 
       M.BUSINESS_SEGMENT_CODE, 
       KB.BUSINESS_SEGMENT_DESC,
       KG.GENDER_DESC, 
       MR.PLANT_CODE [PLANT], 
       MR.STOCK_CATEGORY, 
       M.MATERIAL,
       M.[DESCRIPTION],
       M.COLOR_1,
       M.COLOR_2,
       MR.SIZE_LITERAL,
       MR.QUANTITY,
       M.STANDARD_COST,
       M.DEALER_PRICE,
       M.CURRENT_SEASON,
       MR.STOCK_NUMBER AS 'AFS PO #',
       H.PO_CREATED_BY,
       H.PO_TYPE,
       MR.MRP_INDICATOR,
       MR.STOCK_TYPE,
       H.PO_ISSUE_DATE

FROM   PDX_SAP_USER..VW_MRP_ALLOCATION MR 
JOIN   PDX_SAP_USER..VW_MM_MATERIAL M ON MR.MATERIAL = M.MATERIAL 
JOIN   PDX_SAP_USER..VW_KD_BUSINESS_SEGMENT KB ON M.BUSINESS_SEGMENT_CODE = KB.BUSINESS_SEGMENT_CODE
JOIN   PDX_SAP_USER..VW_KD_GENDER KG ON M.GENDER_CODE = KG.GENDER_CODE 
JOIN   PDX_SAP_USER..VW_PO_HEADER H ON MR.STOCK_NUMBER = H.PO_NUMBER 
JOIN   ADI_USER_MAINTAINED..SCM_PO_EMPLOYEE_NAME E ON MR.STOCK_NUMBER = E.PO_NUMBER 

WHERE  M.BUSINESS_SEGMENT_CODE NOT IN ('420','421','422','424')
AND    MR.STOCK_CATEGORY NOT LIKE 'A60383%'
AND    MR.STOCK_CATEGORY NOT IN ('A60382001','A60380070')
AND    M.MATERIAL NOT IN ('AY1480','CD4683')
AND    H.PO_TYPE NOT IN ('02','06','10','UB','DB')
AND    MR.MRP_INDICATOR IN ('A','N')
AND    MR.STOCK_TYPE = 'B'
AND    MR.QUANTITY >= 50
AND    H.PO_ISSUE_DATE BETWEEN '09/26/2018' AND '10/10/2018'

ORDER BY MR.QUANTITY DESC
4

2 回答 2

0

简短的回答是我当时也研究过它,尽我所能传递参数(比如说,'Sheet1!A1' 单元格)并且不能。除非您使用 Power Query 以及使用 SQL 存储过程,否则没有真正的方法可以做到这一点。您认为您可以要求您的 DBA(或负责数据库的任何人)为您创建一个存储过程,您可以在其中传递日期参数吗?这基本上是您创建参数化查询的唯一方法。

于 2018-10-10T02:17:27.503 回答
0

我让它工作......有点工作。我让我的 DBA 在我们的服务器上创建了一个视图,并从该视图中选择了所有视图。然后我使用 MS Query 引入数据并将日期替换为 ?。在 Excel 的数据源中,您可以将这些问号分配给您输入日期的单元格。奇迹般有效。而不是功劳——所有功劳都归于:

https://www.youtube.com/watch?v=xPalEw4xw1w

于 2018-10-12T01:27:09.743 回答