1

我正在使用 Excel 2013 从 SQL Server 2012 数据库中获取数据,我使用 SQL 查询成功获取数据,但现在我希望该查询是动态的,基于月份和年份。如何使用单元格值(电子表格单元格)作为此类查询的参数?我使用这个查询:

    SELECT [Class_02] AS [MS Part Number]
          ,[701].[dbo].[ItemClasses].[Description] AS [Item Name]
          ,ROUND([701].[dbo].[frhsrg].[esr_aantal]/3, 0) AS [Aantal]
          ,[701].[dbo].[ItemAccounts].[SlsPkgsPerPurPkg] AS [Prijs]
          ,SUM(DISTINCT [701].[dbo].[frhsrg].[esr_aantal]) * [701].[dbo].[ItemAccounts].[SlsPkgsPerPurPkg] as Totaalprijs

FROM [701].[dbo].[Items] 

      WHERE DATEPART(YEAR, fakdat) =  '2013'
      AND DATEPART(QUARTER, fakdat) =  '1'
      AND [701].[dbo].[frhsrg].[docnumber] LIKE '%kwartaal%'

我在Excel中有两个值(月份和年份),例如 2013 年 3 月,然后 SQL 中的 DATEPART 语句必须基于此。我使用 Excel 2013 加载项 PowerPivot 用 SQL 查询输出填充 Excel 工作表。SQL 查询需要如何做到这一点?

转发,非常感谢!

4

2 回答 2

0

...我将查询保存为 Excel VBA 宏中的字符串(我假设这是运行此查询的位置),只需将其编写如下:

WHERE DATEPART(YEAR, fakdat) =  <<YEAR>>
AND DATEPART(QUARTER, fakdat) = <<MONTH>>

基本上将<<YEAR>>and<<MONTH>>作为占位符,然后您可以使用如下Replace所示的函数:

Replace strSQL, "<<YEAR>>", Range("A1").Text

strSQLSQL 字符串在哪里

于 2013-02-21T14:01:03.957 回答
0

自定义参数查询 - http://office.microsoft.com/en-us/excel-help/customize-a-parameter-query-HP010216113.aspx

于 2013-02-21T14:06:47.683 回答