这段语句如何在代码中如何写 ( 积分: 100 )

  • 主题发起人 主题发起人 ylyxx
  • 开始时间 开始时间
Y

ylyxx

Unregistered / Unconfirmed
GUEST, unregistred user!
各位高手,这是一段交叉报表的存储过程,但客户不希望在系统中增加存储过程,因此请教一下,如何在代码中写入这段存储过程<br>declare&nbsp;@sql&nbsp;varchar(8000)<br><br>set&nbsp;@sql&nbsp;=&nbsp;'select&nbsp;distinct&nbsp;科室名称=(select&nbsp;isnull(GROUPNAME,''总合计'')),<br>总费用=sum(case&nbsp;when&nbsp;hsff=0&nbsp;then&nbsp;fy&nbsp;else&nbsp;0&nbsp;end),'<br><br>select&nbsp;@sql&nbsp;=&nbsp;@sql&nbsp;+&nbsp;'sum(case&nbsp;fymc&nbsp;when&nbsp;'''+fymc+'''&nbsp;&nbsp;then&nbsp;&nbsp;fy&nbsp;&nbsp;else&nbsp;0&nbsp;&nbsp;end)&nbsp;as&nbsp;'''+fymc+''','<br><br>&nbsp;&nbsp;from&nbsp;(select&nbsp;distinct&nbsp;flxh,fymc,hsff&nbsp;from&nbsp;#zbb&nbsp;where&nbsp;hsff=0&nbsp;)&nbsp;as&nbsp;a<br><br>&nbsp;select&nbsp;@sql&nbsp;=&nbsp;left(@sql,len(@sql)-1)&nbsp;+&nbsp;'&nbsp;&nbsp;from&nbsp;#zbb&nbsp;&nbsp;group&nbsp;by&nbsp;&nbsp;GROUPNAME&nbsp;with&nbsp;rollup'<br><br><br>exec(@sql)<br>---print(@sql)<br><br>go<br>请详细说明一下。我是初学不久。
 
With&nbsp;Query1&nbsp;DO<br>begin<br>&nbsp;&nbsp;&nbsp;&nbsp;close;<br>&nbsp;&nbsp;&nbsp;&nbsp;SQL.Clear;<br>&nbsp;&nbsp;&nbsp;&nbsp;SQL.Add('declare&nbsp;@sql&nbsp;varchar(8000)');<br>&nbsp;&nbsp;&nbsp;&nbsp;SQL.Add('set&nbsp;@sql&nbsp;=&nbsp;''select&nbsp;distinct&nbsp;科室名称=(select&nbsp;isnull(GROUPNAME,''''总合计'''')),');<br>&nbsp;&nbsp;&nbsp;&nbsp;SQL.Add('总费用=sum(case&nbsp;when&nbsp;hsff=0&nbsp;then&nbsp;fy&nbsp;else&nbsp;0&nbsp;end),''');<br>&nbsp;&nbsp;&nbsp;&nbsp;SQL.Add('select&nbsp;@sql&nbsp;=&nbsp;@sql&nbsp;+&nbsp;''sum(case&nbsp;fymc&nbsp;when&nbsp;''''''+fymc+''''''&nbsp;&nbsp;then&nbsp;&nbsp;fy&nbsp;&nbsp;else&nbsp;0&nbsp;&nbsp;end)&nbsp;as&nbsp;''''''+fymc+'''''',''');<br>&nbsp;&nbsp;&nbsp;&nbsp;SQL.Add('&nbsp;&nbsp;from&nbsp;(select&nbsp;distinct&nbsp;flxh,fymc,hsff&nbsp;from&nbsp;#zbb&nbsp;where&nbsp;hsff=0&nbsp;)&nbsp;as&nbsp;a');<br>&nbsp;&nbsp;&nbsp;&nbsp;SQL.Add('&nbsp;select&nbsp;@sql&nbsp;=&nbsp;left(@sql,len(@sql)-1)&nbsp;+&nbsp;''&nbsp;&nbsp;from&nbsp;#zbb&nbsp;&nbsp;group&nbsp;by&nbsp;&nbsp;GROUPNAME&nbsp;with&nbsp;rollup''');<br>&nbsp;&nbsp;&nbsp;&nbsp;SQL.Add('exec(@sql)');<br>&nbsp;&nbsp;&nbsp;&nbsp;SQL.Add('---print(@sql)');<br>&nbsp;&nbsp;&nbsp;&nbsp;SQL.Add('GO');<br>&nbsp;&nbsp;&nbsp;&nbsp;Execsql;<br>End;
 
''中的'号两个表示一个。
 
后退
顶部