2016-08-22 2 views
0

SSMS에서 올바르게 작동하는 다음 쿼리가 있으며 SSRS 보고서 작성기 3.0의 쿼리 디자이너에서 작동합니다. 세 가지 매개 변수 중 하나 (@year)는 오늘부터 몇 년 후에 결과를 원하는지입니다. @year가 -1, -2, -3, -4 또는 -5가되도록 지정했습니다. 그러나 보고서를 실행할 때 어떤 값을 선택하든 현재 연도의 1 월 결과 만 반환합니다 (이미지 참조). 보고서에 @year 식을 추가하면 올바른 값이 쿼리에 전달되는 것으로 나타납니다. 내가 잘못하고있는 것이 있습니까? SSRS 쿼리 디자이너에서 SSRS에 Results from Running the Report in SSRSSSRS - 내 보고서가 현재 연도의 날짜 만 반환하는 이유는 무엇입니까?

결과 보고서를 실행

declare @complete varchar(1) = 'y', 
@supplier_id Nvarchar(max) = 1, 
@year int = -1 


select p21_view_address.name [Supplier Name], p21_view_po_hdr.supplier_id [Supplier ID], p21_view_po_line.po_no [PO #],p21_view_po_hdr.location_id [PO Location ID], line_no [PO Line #] 
    , p21_view_inv_mast.item_id [Item ID], p21_view_inv_mast.item_desc [item_desc], p21_view_po_line.date_created [PO Date Created], unit_quantity [Qty Ordered] 
    , qty_received [Qty Received] , convert(varchar(10), cast(p21_view_po_line.date_due as date), 101) [Expected Date], coalesce(convert(varchar(10), cast(p21_view_po_line.received_date as date), 101), 'Not Received Yet') [Receipt Date], p21_view_po_hdr.approved [PO Approved?], [pi].average_lead_time [Lead Time] 
    , convert(varchar(10), cast(po_hdr_ud.purchase_order_confirmation as date), 101) [Confirmation Date], convert(varchar(10), cast(p21_view_po_line.required_date as date), 101) [Required Date] from p21_view_po_line 
INNER JOIN p21_view_po_hdr ON p21_view_po_line.po_no = p21_view_po_hdr.po_no 
join p21_view_inv_mast on p21_view_inv_mast.inv_mast_uid = p21_view_po_line.inv_mast_uid 
join p21_view_supplier_purchasing_info [pi] on p21_view_po_line.inv_mast_uid = [pi].inv_mast_uid and p21_view_po_hdr.location_id = [pi].location_id and p21_view_po_hdr.supplier_id = [pi].supplier_id 
join p21_view_address on p21_view_po_hdr.supplier_id = p21_view_address.id 
join po_hdr_ud on p21_view_po_line.po_no = po_hdr_ud.po_no 
where p21_view_po_line.cancel_flag = 'N' and p21_view_po_line.delete_flag = 'N' and p21_view_po_line.complete = @complete and (@supplier_id = 1 or p21_view_po_hdr.supplier_id in (@supplier_id)) 
and p21_view_po_line.date_created > DATEADD(year, @year, GETDATE()) 
order by p21_view_po_line.date_created asc 

결과 enter image description here

+0

이전 날짜가 2 페이지 이상인 경우가 있습니다. – newGuy

답변

1

나는이 확실히 발생하지 왜,하지만 난을 제거하여 문제를 해결 Tablelix 속성을 테이블에 정렬하십시오. 나는 그것을 PO_Date_created에 설정했다. 그러나 나는 또한 나의 SQL 코드에서 PO_Date_created에 의한 명령을 가지고 있었다. 테이블 릭스 정렬 속성을 테이블에서 제거하면 결과가 올바르게 반환됩니다. enter image description here