SQL存储过程显示空白报告

时间:2015-12-14 08:53:19

标签: sql-server stored-procedures crystal-reports

我正在尝试在VS2015中创建一个Crystal Report,但是我遇到了存储过程的问题。当我在没有存储过程的情况下运行报表时,它会获得所需的所有数据,并且所有组和公式都能正常工作。下面是我的主要SQL代码。

SELECT type, description, hire_status, fleet_no, location, date_starting, time_finishing, date_finishing, type, week_number, changes
FROM   XXXXXX INNER JOIN XXXXXX ON fleet_no= XXXXXX.fleet_no
WHERE  week_number= @weekNo

当我尝试向报告添加存储过程时,我只收到一个空白报告,我丢失了报告中的所有数据。存储过程如下:

USE [xxxxxx]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER Procedure [XXXXXXX].[getCurrentLocation] 
@fleet varchar(50) = NULL
AS 
Begin
SELECT TOP 1 (dbo.tbl_job_planning.location)
    FROM   dbo.tbl_job_planning
    WHERE  (fleet_no = @fleet) AND (date_starting <= DATEADD(week, DATEDIFF(day, 0, GETDATE()) / 7, 5))
    ORDER BY date_starting DESC
end;

我将参数传递给记录选择中的此存储过程。 我希望存储过程在报告的每一行显示一个位置。当我仅使用存储过程运行报表时,我只返回1个值,而不是报表中每个项目的值,这是我需要的。

1 个答案:

答案 0 :(得分:1)

因为您正在指定,您将获得1个值  SELECT TOP 1 (dbo.tbl_job_planning.location)。只需删除TOP 1或将1设置为您想要限制的数量,但肯定不是您指定的结果