如何在mysql中正确使用insert子查询

时间:2015-09-23 05:47:23

标签: mysql sql-server

我这里有一个大问题。

首先,我有一个带有列

的表table1
id(int), date(varchar), flavor(varchar), initialWeight(decimal(15,3)), 
liquidWeigh(decimal(15,3)), plusDayWeight(decimal(15,3)), totalWeight(decimal(15,3)))

另一个table2

idFO(int), dateFO(varchar), flavorFO(varchar), totalWeightFO(decimal(15,3))

我正在尝试使用mysql命令用'table1'中的某些信息填充'table2'。

我需要的信息是:'totalWeightFO',但要得到我需要的信息

`'totalWeight'(initialWeight + plusDayWeight) from table1 (where date = yesterday) - initialWeight from table1 (where date = today)`

我现在正在做这个我昨天卖了多少冰淇淋(昨天总重量 - 我今天计算的初始量)

可以这样做吗?我这样做了:

insert into table2 (dateFO, flavorFO, totalWeightFO) 
    select 
        date, flavor, 
        (sum((totalWeight - (select initialWeight 
                             from table1  
                             where date = '22/09/2015')))) 
    from table1 
    where date = '21/09/2015'; ` 

它导致错误:

  

列'dateFO'不能为空

我不知道如何解决这个问题。请有人帮帮我!

1 个答案:

答案 0 :(得分:0)

不看数据就很难回答,很少有观察结果 -

  1. 我注意到你在where子句中使用DD / MM / YYYY格式,默认情况下DB服务器不支持DD / MM / YYYY日期格式
  2. 确保您确实在列中有适当的日期。我感觉表中的日期列必须是时间组件
  3. 你得到的是initialWeight和totalWeight总和,我不确定你的数据结构但是它似乎是错误的