Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql SSRS给了我一个错误,但在数据视图中工作_Sql_Reporting Services - Fatal编程技术网

Sql SSRS给了我一个错误,但在数据视图中工作

Sql SSRS给了我一个错误,但在数据视图中工作,sql,reporting-services,Sql,Reporting Services,在SSRS 2005中处理查询。查询在“数据”视图中工作,但在“预览”视图中会弹出。这就是我所拥有的: SELECT TOP(cast(@N as integer)) Date, StartItem, MasterItem, SubItem, SubItemDescription, Quantity, NetQuantity, UnitOfMeasure,

在SSRS 2005中处理查询。查询在“数据”视图中工作,但在“预览”视图中会弹出。这就是我所拥有的:

SELECT 
      TOP(cast(@N as integer))  
      Date, 
      StartItem, 
      MasterItem, 
      SubItem, 
      SubItemDescription, 
      Quantity, 
      NetQuantity, 
      UnitOfMeasure, 
      BomLevel, 
      Cost, 
      Cost * NetQuantity * (CASE WHEN a.Purch = 1 THEN 1 ELSE 0 END) AS TotalSumCost
 FROM         
      Bom AS a
 GROUP BY 
      Date, StartItem, MasterItem, SubItem, SubItemDescription, Quantity, NetQuantity,       UnitOfMeasure, BomLevel, Cost, 
                        Cost * NetQuantity * (CASE WHEN a.Purch = 1 THEN 1 ELSE 0 END)
 ORDER BY TotalSumCost DESC
我得到的错误是“查询参数'@N'的值表达式引用了一个不存在的报表参数'N'。我的报表参数中有N个设置。请参见下图


你得把它命名为N,我看到Rowsreturn

此外,如果您稍后在流程中定义了该参数,则在03和05(Visual Studio)中,该参数会被忽略。 右键单击您的报告,并在“XML查找参数”部分中选择“查看代码”,并确保它存在。它将如下所示:

 <Query>
        <DataSourceName>dsTKExpenseReports</DataSourceName>
        <CommandType>StoredProcedure</CommandType>
        <CommandText>rptExpenseReportReasons</CommandText>
        <QueryParameters>
          <QueryParameter Name="@ExpenseReasonID">
            <Value>=Parameters!ExpenseReasonID.Value</Value>
          </QueryParameter>
          <QueryParameter Name="@Reimbursable">
            <Value>=Parameters!Reimbursable.Value</Value>
          </QueryParameter>
          <QueryParameter Name="@RequiresDesc">
            <Value>=Parameters!RequiresDesc.Value</Value>
          </QueryParameter>
        </QueryParameters>
      </Query>
SELECT 
      TOP(cast(@RowsReturned as integer))  
      Date, 
      StartItem, 
      MasterItem, 
      SubItem, 
      SubItemDescription, 
      Quantity, 
      NetQuantity, 
      UnitOfMeasure, 
      BomLevel, 
      Cost, 
      Cost * NetQuantity * (CASE WHEN a.Purch = 1 THEN 1 ELSE 0 END) AS TotalSumCost
 FROM         
      Bom AS a
 GROUP BY 
      Date, StartItem, MasterItem, SubItem, SubItemDescription, Quantity, NetQuantity,       UnitOfMeasure, BomLevel, Cost, 
                        Cost * NetQuantity * (CASE WHEN a.Purch = 1 THEN 1 ELSE 0 END)
 ORDER BY TotalSumCost DESC
顺便说一句,您不正确地使用了
GROUP BY
子句,您只是列出GROUP BY中的所有列以获得预期结果。这可能会影响您。正确的方法是使用别名查询,然后在别名中列出组…:

SELECT 
      n.Blah,
      a.Blah
FROM
      MyTable
INNER JOIN
 (
  SELECT...GROUP BY...
 ) n