sql查询执行2个表之间的划分并将结果插入第三个表

时间:2017-03-20 15:36:19

标签: mysql sql

对于sql来说,我是新手,但是当我决定进入某些东西时,我一直都是这样做的。我正在尝试创建一个数据库,该数据库将根据产品制造优先级的输入执行计算。我有一张表,严格按产品编号和每周的计划生产输入。在另一个表中,我有一些转换值,我需要使用它来将计划的镜头转换为磅。在第三个表格中,我需要在转换表中插入每周产品项目编号计划素材的值除以每磅的英尺,并将这些值插入第三个表格中对应于周的相应周数列中第一个表中的数字列。

我希望你和我一样清楚。我遇到的问题是我不知道如何使这个动态查询与周数的列名匹配,并适当地执行数学和插入。

我的SELECT代码甚至无法正常工作,因为它似乎抓住了每周数字列中的所有值,并在除以每磅英尺值之前将它们相加。我试图在同一个电话中执行插入功能,但没有运气,也没有实际期望。我还没有比这更远的地方。任何帮助甚至让我开始的帮助将不胜感激。与此同时,我将继续尝试一些不同的事情,看看我能想出什么。

SELECT WeeklyFootagePlan.Wire_PN / Conversions.Finish_ft_lb
FROM WeeklyFootagePlan, Conversions
WHERE WeeklyFootagePlan.Wire_PN = Conversions.Wire_PN;

1 个答案:

答案 0 :(得分:0)

您似乎只需将 WeeklyFootagePlan 表加入 PN 转化表中。

以下是解决方案示例:

重新制作某些版本的表格

create table YourSchema.WeeklyCalculation(PN int(10)
                                        , Week1Conversion double
                                        , Week2Conversion double
                                        , Week3Conversion double
                                        , primary key PN_pkey(PN));

create table YourSchema.WeeklyFootagePlan(PN int(10) auto_increment
                                        , Week1 double
                                        , Week2 double
                                        , Week3 double
                                        , primary key PN_pkey(PN));

create table YourSchema.Conversion(PN int(10)
                                 , Conversion1 double
                                 , Conversion2 double
                                 , Conversion3 double
                                 , primary key PN_pkey(PN));

插入一些数据

insert 
  into YourSchema.WeeklyFootagePlan(Week1, Week2, Week3)
select 50, 20, 12.5;

insert 
  into YourSchema.Conversion(PN, Conversion1, Conversion2, Conversion3)
select 1, .25, 1.5, 2.5;

插入第三张表格

insert
  into YourSchema.WeeklyCalculation(PN, Week1Conversion, Week2Conversion, Week3Conversion)
select w.PN, w.week1/c.Conversion3 as SomeConversion
     , w.Week2/c.Conversion3 as AnotherConversion
     , w.Week3/c.Conversion2 as YetAnotherConversion
  from YourSchema.WeeklyFootagePlan w
  join YourSchema.Conversion c
    on c.PN = w.PN;

<强>结果:

select *
  from YourSchema.WeeklyCalculation;

PN | Week1Conversion | Week2Conversion | Week3 Conversion
1  |      20         |      8          |    8.33333333333333