2011-12-14 69 views
1

我對Oracle數據庫以下查詢:如何將參數傳遞給SQL Server Reporting Services中的Query.CommandText?

select * from (
    select Person.pId, Person.lastName as patLast, Person.firstName as patFirst 
       , Person.dateOfBirth 
      , Medicate.mId, Medicate.startDate as medStart, Medicate.description 
       , cast(substr(Medicate.instructions, 1, 50) as char(50)) as instruct 
      , ml.convert_id_to_date(Prescrib.pubTime) as scripSigned 
       , max(ml.convert_id_to_date(Prescrib.pubTime)) over (partition by Prescrib.pId, Prescrib.mId) as LastScrip 
      , UsrInfo.pvId, UsrInfo.lastName as provLast, UsrInfo.firstName as provFirst 
     from ml.Medicate 
      join ml.Prescrib on Medicate.mId = Prescrib.mId 
       join ml.UsrInfo on Prescrib.pvId = UsrInfo.pvId 
      join ml.Person on Medicate.pId = Person.pId 
     where Person.isPatient = 'Y' 
       and Person.pStatus = 'A' 
      and Medicate.xId = 1.e+035 
       and Medicate.change = 2 
       and Medicate.stopDate > sysdate 
       and REGEXP_LIKE(Medicate.instructions 
        , ' [qtb]\.?[oi]?\.?[dw][^ayieo]' 
         || '|[^a-z]mg?s' 
         || '|ij' 
         || '|[^a-z]iu[^a-z]' 
         || '|[0-9 ]u ' 
         || '|[^tu]hs' 
        , 'i') 
     order by ScripSigned desc 
) where scripSigned = lastScrip and scripSigned > date '2011-01-01' 

我有一個報表參數定義,DateBegin,定義爲一個日期時間,我已經與查詢參數也被稱爲DateBegin有關吧。我只是無法弄清楚如何用「DateBegin」替換「date」2011-01-01'「,以便blinkin的東西真正起作用。謝謝!

回答

3

使用的參數以及Oracle格式 - 因此使用下列內容:(該@符號在SQLServer的用於識別SQLServer的變量)

) where scripSigned = lastScrip and scripSigned > :DateBegin 

+0

啊,謝謝。我以前從來沒有必要直接將參數傳遞給Oracle。對於任何SQL命令,Crystal Reports都使用相同的參數格式 - {?DateBegin},並將其轉換爲適合後端的格式。 – SarekOfVulcan 2011-12-15 14:00:06