SQL 存储过程和在存储过程中创建临时表 20

因工作需要帮客户做个报表,但之前我从未写过复杂的存储过程,更没有在存储过程中创建临时表,因此在此发贴请好心的大哥大姐帮忙了。我使用SQL语句可以查出的表如下:仓库代码,仓... 因工作需要帮客户做个报表,但之前我从未写过复杂的存储过程,更没有在存储过程中创建临时表,因此在此发贴请好心的大哥大姐帮忙了。
我使用SQL语句可以查出的表如下:仓库代码,仓库名称,库存资金
比如(001,原材料仓1,10000)(002,原材料仓2,20000)(003,原材料仓3,30000),我的报表要求是参数为会计期间,栏位为你产品名称,未镀,已镀,委外,总计。未镀,已镀和委外的金额根据仓库来区分,比如(HA,1000,2000,0,3000),因为HA已镀仓库为001,未镀仓库为002,无委外,总计=前三之合。请问,我的存储过程该如何写?
CREATE TABLE ##TEMP2(F_CPMC VARCHAR(50),F_WD NUMERIC(18,8),F_YD NUMERIC(18,8),F_WA NUMERIC(18,8),F_TOTAL NUMERIC(18,8))
select A.CKDM,A.CKMC,A.KCJE into ##temp from (
SELECT T1.F_CKDM AS 'CKDM',T3.F_CKMC AS'CKMC',SUM(T1.KCSL*T2.YDPJJ)AS'KCJE'
FROM
(select F_CKDM,F_WLDM,SUM(F_QMSL)AS'KCSL'
from CH_KCZB
WHERE F_KJQJ='200902'
GROUP BY F_CKDM,F_WLDM)AS T1,
(select F_WLDM, SUM(F_QMSL)AS 'QMSL',SUM(F_QMJE)AS 'KCZJ', CASE SUM(F_QMSL) WHEN 0 THEN '0' ELSE SUM(F_QMJE)/SUM(F_QMSL) END AS 'YDPJJ'
from CH_KCZB WHERE F_KJQJ='200902'
and F_COMPID='002'
GROUP BY F_WLDM)AS T2,
KC_CKZD as T3
WHERE T1.F_WLDM=T2.F_WLDM
AND T1.F_CKDM=T3.F_CKDM
and (T1.F_CKDM LIKE 'U10%'OR T1.F_CKDM LIKE 'U20%'OR T1.F_CKDM LIKE 'U40%')
GROUP BY T1.F_CKDM,T3.F_CKMC)as A
展开
 我来答
dyxg041
2009-03-23 · TA获得超过1035个赞
知道小有建树答主
回答量:1067
采纳率:0%
帮助的人:965万
展开全部
建立临时表只是在表的前面加一个#,其它都舆建立实表相同,建立过程我相信你都知道了,就不用我多说了
Egg:
create table #temp
(id int,
name varchar(50)
)
博佬
2009-03-23 · TA获得超过1145个赞
知道答主
回答量:76
采纳率:0%
帮助的人:45万
展开全部
把你所有涉及的表自段发上来 你这样怎么给你写啊 ha是哪个表的自段啊 需求明确了给你写 才20分也太少了吧 这个工作量可不小哦 想当初我给人写这么左右的存储过程 拿了500块人民币呢呢 呵呵! 建立临时表只是在表的前面加一个#,其它都舆建立实表相同,建立过程我相信你都知道了,就不用我多说了
Egg:
create table #temp
(id int,
name varchar(50)
)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友f2a99ee
2009-03-23 · TA获得超过175个赞
知道小有建树答主
回答量:283
采纳率:0%
帮助的人:169万
展开全部
把你所有涉及的表自段发上来 你这样怎么给你写啊 ha是哪个表的自段啊 需求明确了给你写 才20分也太少了吧 这个工作量可不小哦 想当初我给人写这么左右的存储过程 拿了500块人民币呢呢 呵呵!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式