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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求编写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.月
你应该懂的
参考技术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需要围绕JOINs的括号:

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个表运算,估计要做存储过程的。的主要内容,如果未能解决你的问题,请参考以下文章

Oracle里SQL语句的百分比运算

怎样编写SQL语句求平均成绩

怎样编写SQL语句求平均成绩

怎么用sql语句编写求平均值的问题

sql语句练习

在sql代码中使用Like运算符。语法错误