Tôi đang chạy truy vấn sau trong SSRS. Nếu tôi thêm khai báo cho hai tham số, nó sẽ chạy tốt trong SQL Management Console.Cách liệt kê các trường từ truy vấn SQL động trong bộ dữ liệu SSRS
declare @EMRQuery varchar(max)
declare @CPSQuery varchar(max)
set @EMRQuery = 'select Person.ExternalId
from ml.Person
join ml.Obs on Person.pId = Obs.pId
join ml.ObsHead on Obs.hdId = ObsHead.hdId
where ObsHead.name = ''SCHOOLREGDTE''
and Obs.xId = 1.e+035
and Obs.change = 2
and Obs.obsDate >= to_date('''
+ convert(varchar(30), @DateYearStart, 120)
+ ''', ''YYYY-MM-DD HH24:MI:SS'')
and Obs.obsDate < to_date('''
+ convert(varchar(30), @DateQuarterEnd, 120)
+ ''', ''YYYY-MM-DD HH24:MI:SS'')'
set @CPSQuery = 'select ic.ListName, count(distinct pp.patientprofileid) as PatCount
from PatientProfile pp
left join PatientInsurance pi on pp.PatientProfileId = pi.PatientProfileId
and pi.OrderForClaims = 1
and pi.Inactive <> 1
left join InsuranceCarriers ic on pi.InsuranceCarriersId = ic.InsuranceCarriersId
join OpenQuery(EMR_LIVE
, ''' + replace(@EMRQuery, '''', '''''') +
''') Students on pp.PatientId = Students.ExternalId
group by ic.ListName '
exec(@CPSQuery)
Tuy nhiên, khi tôi cắm mã này vào SSRS, nó không đăng ký là có bất kỳ trường nào có sẵn để báo cáo. Làm thế nào để thuyết phục SSRS rằng tôi có các lĩnh vực để làm việc với? Cảm ơn.
Chỉnh sửa: Tôi vừa khai báo các tham số trong truy vấn và nó nhận ra tên trường.
declare @DateYearStart datetime
declare @DateQuarterEnd datetime
set @DateYearStart = '2011-07-01'
set @DateQuarterEnd = '2012-03-31'
Tất nhiên, điều đó bị lỗi vì tôi đã khai báo tham số hai lần, một lần làm thông số truy vấn và một lần trong truy vấn. Nhưng, ngay sau khi tôi nhận xét các dòng trên, tôi lại mất đi các lĩnh vực.
Như tôi đã nói, khi tôi khai báo các tham số và giá trị được cung cấp cho chúng, truy vấn hoạt động tốt. Đó là khi tôi chuyển các tham số vào tập dữ liệu từ báo cáo rằng nó sẽ không thấy các trường. Nhưng, khi tôi thêm các trường được tính toán vào tập dữ liệu, tôi có thể thấy rằng nó đã trả lại số lượng bản ghi chính xác, mặc dù tôi không thể thuyết phục nó hiển thị cho tôi các trường tôi muốn xem. – SarekOfVulcan
Tôi thấy bây giờ. Có, nó thực sự không tạo ra các trường. Bạn đã thử ý tưởng thủ tục lưu sẵn chưa? – Diego
Chưa. Tôi có thể phải đi với điều đó cho một giải pháp, nhưng báo cáo này đang đi ngược lại một ứng dụng của bên thứ ba, và tôi cố gắng lộn xộn với các định nghĩa dữ liệu càng ít càng tốt. (Đã học bài học đó khi một khung nhìn vật chất hóa Oracle mà tôi đã xây dựng mất kiểm soát và bắt đầu tự xây dựng lại mỗi khi dữ liệu được cập nhật, thay vì lúc 2:00 sáng mỗi đêm ...) – SarekOfVulcan