Как правильно использовать вставки подзапроса в 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 ответ
Нелегко ответить, не глядя на данные, несколько наблюдений -
- Я заметил, что вы используете формат DD / MM / YYYY в предложении where, по умолчанию серверы БД не поддерживают формат даты DD / MM / YYYY
- Убедитесь, что у вас есть правильные даты в столбце. У меня такое ощущение, что ваш столбец даты в таблице должен содержать компонент времени
- Вы получаете начальный вес и общий вес в целом, я не уверен насчет вашей структуры данных, но она кажется ошибочной