求编写SQL语句,需要做运算的。 SQL里做4个表运算,估计要做存储过程的。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求编写SQL语句,需要做运算的。 SQL里做4个表运算,估计要做存储过程的。相关的知识,希望对你有一定的参考价值。
我有3个表,表结构如下
-----------------------------------------------
表名:“物料信息”
表项目:物料名称,物料规格,物料编号
-----------------------------------------------
表名:“产品单价”
表项目:单价,物料编号,币别
-----------------------------------------------
表名:“生产数”
表项目:生产日期,物料编号,生产数量
-----------------------------------------------
需要的执行过程:
我需要的功能是查询指定日期的生产数量(以“生产数”表里的“生产日期”)并套入对应单价,并用单价乘以数量计算出金额,最后将金额数汇总求和,
如果哪位高手厉害还请帮忙用金额乘以汇率,应为“产品单价”表里有“币别”会有人民币,港币,台币,我需要的是全部换算成人民币金额。
( 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.月
你应该懂的 参考技术A 其他币别对换成人民币的汇率会变化,这个你表里没有存,写成固定的行吗?
如果行的话,你这也是一个多统计报表的需求,很简单就是多表联查加计算。追问
汇率就按固定的0.68就好了。
参考技术B ERP同行。。算产值吧。。select 数量,
数量*(select 单价 from 产品单价 a where a.编码=编码 and 生产日期 between 单价生效日期 and 单价失效日期)*
(select 汇率 from 汇率表 where a.币别=币别 and 生产日期 between 汇率生效日期 and 汇率失效日期) from 生产数
。。。。就这样了。。 数量*金额*汇率 参考技术C 具体点吧!不明白你的意思、、 参考技术D 如果有人回答你的问题,你把需求应该写明白呀 第5个回答 2011-04-20 其他的好做 产品单价表有多种币别 要么些函数 不然不就找屎么 吧币种统一¥ or $ 录入的时候折算好
在sql代码中使用Like运算符。语法错误
我想在代码中使用4到5个表。但是在代码之间我需要使用like运算符来使用contains属性。我编写了代码但代码却给出了语法错误。请指教。
SELECT
[RCDT Database].FUNCTIONALITY,
[RCDT Database].SPECIFICATION,
[RCDT Database].[TEST NAME]
FROM SelectedClearingName
INNER JOIN Clearing ON (SelectedClearngName.ClearingName=Clearing.ClearingName)
INNER JOIN FunctionalityWiseClearing ON (Clearing.ClearingName=FunctionalityWiseClearing.Clearing)
INNER JOIN SelectedValues ON (FunctionalityWiseClearing.Functionality=SelectedValues.ListBoxValues)
INNER JOIN [RCDT Database] ON ([RCDT Database].FUNCTIONALITY Like "" & [SelectedValued.ListBocValues] & ""
INNER JOIN SelectedPaytype ON ([RCDT Database].[PAY TYPE]=SelectedPaytype.PaytypeValue;
似乎你必须围绕连接元素()
SELECT
[RCDT Database].FUNCTIONALITY,
[RCDT Database].SPECIFICATION,
[RCDT Database].[TEST NAME]
FROM SelectedClearingName
INNER JOIN Clearing ON (SelectedClearngName.ClearingName=Clearing.ClearingName)
INNER JOIN FunctionalityWiseClearing ON (Clearing.ClearingName=FunctionalityWiseClearing.Clearing)
INNER JOIN SelectedValues ON (FunctionalityWiseClearing.Functionality=SelectedValues.ListBoxValues)
...........
在Access(标记)SQL中它将是:
Like "*" & [Selectedvalues.ListBoxValues] & "*"
编辑:
减少它:
SELECT
[RCDT Database].FUNCTIONALITY,
[RCDT Database].SPECIFICATION,
[RCDT Database].[TEST NAME]
FROM
[RCDT Database],
SelectedClearingName
INNER JOIN
Clearing ON (SelectedClearngName.ClearingName=Clearing.ClearingName)
INNER JOIN
SelectedValues ON (FunctionalityWiseClearing.Functionality = SelectedValues.ListBoxValues)
INNER JOIN
FunctionalityWiseClearing ON (Clearing.ClearingName=FunctionalityWiseClearing.Clearing)
INNER JOIN
SelectedPaytype ON ([RCDT Database].[PAY TYPE]=SelectedPaytype.PaytypeValue
WHERE
[RCDT Database].FUNCTIONALITY Like "*" & [SelectedValued.ListBocValues] & "*"
这里缺少的是Access SQL的复杂括号,我永远无法回想起来。
因此,删除Where子句,使用GUI设计器创建内部联接,然后添加Where子句。
MS Access需要围绕JOIN
s的括号:
SELECT [RCDT Database].FUNCTIONALITY, [RCDT Database].SPECIFICATION, [RCDT Database].[TEST NAME]
FROM ((((SelectedClearingName INNER JOIN
Clearing
ON SelectedClearngName.ClearingName = Clearing.ClearingName
) INNER JOIN
FunctionalityWiseClearing
ON Clearing.ClearingName = FunctionalityWiseClearing.Clearing
) INNER JOIN
SelectedValues
ON FunctionalityWiseClearing.Functionality = SelectedValues.ListBoxValues
) INNER JOIN
[RCDT Database]
ON [RCDT Database].FUNCTIONALITY Like "" & [SelectedValued.ListBocValues] & ""
) INNER JOIN
SelectedPaytype
ON ([RCDT Database].[PAY TYPE] = SelectedPaytype.PaytypeValue;
以上是关于求编写SQL语句,需要做运算的。 SQL里做4个表运算,估计要做存储过程的。的主要内容,如果未能解决你的问题,请参考以下文章