Как правильно использовать вставки подзапроса в MySQL

У меня здесь большая проблема.

Сначала у меня есть стол 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, чтобы заполнить 'table2' некоторой информацией из 'table1'.

Мне нужна информация: "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 ответ

Нелегко ответить, не глядя на данные, несколько наблюдений -

  1. Я заметил, что вы используете формат DD / MM / YYYY в предложении where, по умолчанию серверы БД не поддерживают формат даты DD / MM / YYYY
  2. Убедитесь, что у вас есть правильные даты в столбце. У меня такое ощущение, что ваш столбец даты в таблице должен содержать компонент времени
  3. Вы получаете начальный вес и общий вес в целом, я не уверен насчет вашей структуры данных, но она кажется ошибочной
Другие вопросы по тегам