这个存储过程怎么写 ( 积分: 50 )

  • 主题发起人 主题发起人 happy_hsr
  • 开始时间 开始时间
H

happy_hsr

Unregistered / Unconfirmed
GUEST, unregistred user!
有一个存储过程是:sp_sapert_datil,这个存储过程需要三个参数@cr_no,@s_date,@e_date<br>调用的结果是产生了一个资料集:<br>c_no&nbsp;&nbsp;&nbsp;&nbsp;pnl&nbsp;&nbsp;&nbsp;s_qty&nbsp;&nbsp;&nbsp;k_kind&nbsp;&nbsp;&nbsp;prd<br>00025&nbsp;&nbsp;&nbsp;0025&nbsp;&nbsp;&nbsp;&nbsp;25.5&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2569<br>00254&nbsp;&nbsp;&nbsp;0025&nbsp;&nbsp;&nbsp;&nbsp;25.8&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2569<br>05265&nbsp;&nbsp;&nbsp;0025&nbsp;&nbsp;&nbsp;&nbsp;18.5&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2569<br>00525&nbsp;&nbsp;&nbsp;0018&nbsp;&nbsp;&nbsp;&nbsp;58.5&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2564<br>03525&nbsp;&nbsp;&nbsp;0018&nbsp;&nbsp;&nbsp;&nbsp;28.3&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2564<br>00525&nbsp;&nbsp;&nbsp;0018&nbsp;&nbsp;&nbsp;&nbsp;43.5&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2564<br>02623&nbsp;&nbsp;&nbsp;0018&nbsp;&nbsp;&nbsp;&nbsp;58.5&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2564<br>00256&nbsp;&nbsp;&nbsp;0018&nbsp;&nbsp;&nbsp;&nbsp;15.5&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2564<br>00525&nbsp;&nbsp;&nbsp;0018&nbsp;&nbsp;&nbsp;&nbsp;16.9&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2565<br><br>现在打算再写一个存储过程传递一个参数@k_kind,根据@k_kind=0&nbsp;或者@k_kind=1&nbsp;找出上一个存储过程集中K_kind=0&nbsp;或k_kind=1的值,这个过程怎么写?
 
多传递一个参数,一个存储过程里实现就可以了呗,否则的话,只有把结果存到表或临时表中了
 
CREATE&nbsp;PROCEDURE&nbsp;proc_test&nbsp;<br> @k_kind&nbsp;int<br>AS<br> create&nbsp;table&nbsp;#tb(...)--定义与存储过程sp_sapert_datil的结果集相同的表结果<br> insert&nbsp;into&nbsp;#tb&nbsp;exec&nbsp;sp_sapert_datil&nbsp;参数<br> select&nbsp;*&nbsp;from&nbsp;#tb&nbsp;where&nbsp;K_kind&nbsp;=&nbsp;@k_kind<br> drop&nbsp;table&nbsp;#tb<br>GO
 
s00000000001,&nbsp;你好!<br>你所写的过程中:<br>&nbsp;insert&nbsp;into&nbsp;#tb&nbsp;exec&nbsp;sp_sapert_datil&nbsp;参数<br>其中的参数怎么传递!<br>可以留下QQ号码吗?
 
参数就是:sp_sapert_datil这个存储过程需要的三个参数@cr_no,@s_date,@e_date<br>你最好把这个三个参数也传进新过程,变为:<br>CREATE&nbsp;PROCEDURE&nbsp;proc_test&nbsp;<br>&nbsp;@k_kind&nbsp;int,@cr_no&nbsp;int,@s_date&nbsp;datetime,@e_date&nbsp;datetime<br>as<br>create&nbsp;table&nbsp;#tb(c_no&nbsp;,&nbsp;&nbsp;&nbsp;pnl,&nbsp;&nbsp;&nbsp;s_qty,&nbsp;&nbsp;&nbsp;k_kind,&nbsp;&nbsp;&nbsp;prd)--定义与存储过程sp_sapert_datil的结果集相同的表结果,类型长度默认值自己加上.<br>&nbsp;insert&nbsp;into&nbsp;#tb&nbsp;exec&nbsp;sp_sapert_datil&nbsp;@cr_no,@s_date,@e_date<br>&nbsp;select&nbsp;*&nbsp;from&nbsp;#tb&nbsp;where&nbsp;K_kind&nbsp;=&nbsp;@k_kind<br>&nbsp;drop&nbsp;table&nbsp;#tb<br>GO
 
谢谢&nbsp;hegyi&nbsp;了!
 
hegyi可以留个QQ号码吗?
 
后退
顶部