求编写SQL语句,需要做运算的。 SQL里做4个表运算,估计要做存储过程的。

我有3个表,表结构如下
-----------------------------------------------
表名:“物料信息”
表项目:物料名称,物料规格,物料编号
-----------------------------------------------
表名:“产品单价”
表项目:单价,物料编号,币别
-----------------------------------------------
表名:“生产数”
表项目:生产日期,物料编号,生产数量
-----------------------------------------------
需要的执行过程:
我需要的功能是查询指定日期的生产数量(以“生产数”表里的“生产日期”)并套入对应单价,并用单价乘以数量计算出金额,最后将金额数汇总求和,
如果哪位高手厉害还请帮忙用金额乘以汇率,应为“产品单价”表里有“币别”会有人民币,港币,台币,我需要的是全部换算成人民币金额。

select sum(金额) from
( select(a.生产数量*b.单价*(select 汇率 from 汇率表 c,产品单价 b where b.币别=c.币别)) from 生产数 a,产品单价 b where a.物料编号=b.物料编号 and a.生产日期='指定日期')
刚写一个完整的居然卡死了只有重新写了
比较简单,先把明细从不同的表通过相同栏位连接起来,如果需要按日期汇总,那就用 生产日期
group by ;
汇率可能按年月来的,那就在汇率的后面加条件:and year(指定日期)=c.年 and month(指定日期)=c.月
你应该懂的
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-04-20
其他币别对换成人民币的汇率会变化,这个你表里没有存,写成固定的行吗?
如果行的话,你这也是一个多统计报表的需求,很简单就是多表联查加计算。追问

汇率就按固定的0.68就好了。

第2个回答  2011-04-23
ERP同行。。算产值吧。。

select 数量,
数量*(select 单价 from 产品单价 a where a.编码=编码 and 生产日期 between 单价生效日期 and 单价失效日期)*
(select 汇率 from 汇率表 where a.币别=币别 and 生产日期 between 汇率生效日期 and 汇率失效日期) from 生产数

。。。。就这样了。。 数量*金额*汇率
第3个回答  2011-04-20
具体点吧!不明白你的意思、、
第4个回答  2011-04-20
如果有人回答你的问题,你把需求应该写明白呀
第5个回答  2011-04-20
其他的好做 产品单价表有多种币别 要么些函数 不然不就找屎么 吧币种统一¥ or $ 录入的时候折算好

...需要做运算的。 SQL里做4个表运算,估计要做存储过程的。_百度...
比较简单,先把明细从不同的表通过相同栏位连接起来,如果需要按日期汇总,那就用 生产日期 group by ;汇率可能按年月来的,那就在汇率的后面加条件:and year(指定日期)=c.年 and month(指定日期)=c.月 你应该懂的

...表的某一列各自求和后,再四列相加等于另一表的某一列 存储过程...
insert into [kucun(库存表)] (spdm ,spggdm,kcsl) values (@spdm1,@spggdm1,(@cgjhsl+@cgthsl+@xschsl+@xsthsl))

sql存储过程中有多sql语句怎么写
1 2 3 4 IF COL_LENGTH('A', 'id') IS NOT NULL PRINT N'存在'ELSE PRINT N'不存在'2、当前连接的数据库中是否存在表名为A 的表 1 2 3 4 IF object_id(N'A',N'U') IS NOT NULL PRINT N'存在'ELSE PRINT N'不存在'3、你要用存储过程,直接在外层代码加个套就OK了。比如判...

使用SQL语句创建存储过程
1、首先,打开企业管理器,选择【工具】-【查询分析器】:2、然后,输入SQL语句。如下:CREATE PROCEDURE byroyalty1 @percentage int AS select au_id from titleauthor where titleauthor.royaltyper = @percentage GO 3、然后,点击确定之后,命令就会自动添加进查询中:4、然后执行一下刚输入的命令:...

怎么把普通SQL查询语句改为存储过程
存储过程是一个包含多个SQL查询语句的集合。例如表格 tt,检索表格所以数据的SQL语句为:select from tt ;下面使用一样的SQL语句来创建一个存储过程proc_test IF OBJECT_ID (N'PROC_test', N'P') IS NOT NULL DROP procedure PROC_test;GO CREATE procedure PROC_test AS select * from tt GO...

怎么查看一个存储过程的SQL语句
查看一个存储过程的SQL语句步骤如下:1、开启Microsoft SQL Server数据库管理工具,输入账号密码连接到数据库。2、如果数据库服务器上有多个数据库,选择我们要查看的数据库,展开其选项。3、 在数据库展开的菜单中,找到‘可编程性’菜单,并将其展开。4、在‘可编程性’菜单下面,找到‘存储过程’并...

如何在sql创建一条插入数据的存储过程
1、首先需要打开SQL Server Managment管理工具,新建一个表。2、然后在表中插入一些样例数据。3、接下来在SQL Server Managment中右键单击可编程性,选择新建存储过程。4、然后在SQL编写界面中编写SQL语句,注意这里的@name就是接收的输入参数。5、编写好存储过程,执行一下,就会在可编程性下面找到创建的...

求一个统计数量的sql语句;
里面是测试的数据。希望能看懂.脚本如下:use testgo create table tb1(id int primary key ,pname varchar(10))insert into tb1 select 1,'p1'union all select 2,'p2'union all select 3,'p3'union all select 4,'p4'union all select 5,'p5'create table tb2(id int identity(1,1),...

创建存储过程sql语句
1)过程名存储过程的名称,默认在当前数据库中创建。若需要在特定数据库中创建存储过程,则要在名称前面加上数据库的名称,即db_name.sp_name。需要注意的是,名称应当尽量避免选取与MySQL内置函数相同的名称,否则会发生错误。2)过程参数存储过程的参数列表。其中,为参数名,为参数的类型(可以是任何有效...

求sql查询语句,把子表的每行放到主表中变成列
SELECT distinct b.col11,col121=(SELECT col12 FROM t_1 a WHERE a.col11=b.col11 AND a.col12=1),col131=(SELECT col13 FROM t_1 a WHERE a.col11=b.col11 AND a.col12=1),col122=(SELECT col12 FROM t_1 a WHERE a.col11=b.col11 AND a.col12=2),col132=(SELECT ...

相似回答
大家正在搜