powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Сложить данные из 3 таблиц и обновить 4-ю.
8 сообщений из 8, страница 1 из 1
Сложить данные из 3 таблиц и обновить 4-ю.
    #38879090
Mc Doc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть небольшая задача. В базе данных четыре таблицы. Назовем их как internet, user1, user2, user3.

Все три таблицы имеют одну и ту же структуру:

inet_date, 01-00, 02-00, 03-00 ... 23-59 (это колонки co значениями 0, 0, ... 0)
u1_date, 01-00, 02-00, 03-00 ... 23-59 (с разными значениями 0.234, 23.098, ... 0.008 (к примеру))
u2_date, 01-00, 02-00, 03-00 ... 23-59 (с разными значениями 0.007, 10.001, ... 3.256 (к примеру))
u3_date, 01-00, 02-00, 03-00 ... 23-59 (с разными значениями 4.654, 11.321, ... 1.509 (к примеру))

inet_date, u1_date, u2_date, u3_date ... соответственно дни (2015-01-01 как пример). u1_date = current_date, u2_date = current_date and u3_date = current_date,

Задача, написать запрос, что бы:

- взять значения из поля 01-00 таблицы user1
- взять значения из поля 01-00 таблицы user2
- взять значения из поля 01-00 таблицы user3

- сложить эти 3 значения и обновить таблицу internet занеся полученную сумму вполе 01-00 этой таблицы. Где дата есть текущее число (where inet_date = current_date). Конечно хотелось бы все решить одни запросом. Где все дни соответственно одинаковые, во все таблицах.
...
Рейтинг: 0 / 0
Сложить данные из 3 таблиц и обновить 4-ю.
    #38879102
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mc Doc, ну типа

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
update inet i
join u1 on i.date=u1.date
join u2 on i.date=u2.date
join u3 on i.date=u3.date
set i.`01-00`=u1.`01-00`+u2.`01-00`+u3.`01-00`
 ,i.`02-00`=u1.`02-00`+u2.`02-00`+u3.`02-00`
 ,...
where inet_date = current_date

Насколько я понимаю, в каждой таблице на одну дату приходится только одна запись?
...
Рейтинг: 0 / 0
Сложить данные из 3 таблиц и обновить 4-ю.
    #38879189
Mc Doc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,
да действительно, на одну запись приходится только одна запись.

Я что то упустил... пойму что....

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
update internet i
join user1 on i.date=user1.date
join user2 on i.date=user2.date
join user3 on i.date=user3.date
set `i`.`i_01_00` = `user1`.`u1_01_00` + `user2`.`u2_01_00` + `user3`.`u3_01_00`,
    `i`.`i_02_00` = `user1`.`u1_02_00` + `user2`.`u2_02_00` + `user3`.`u3_02_00`,
.
.
.
    `i`.`i_23_59` = `user1`.`u1_23_59` + `user2`.`u2_23_59` + `user3`.`u3_23_59`
where `internet_date` = current_date



MySQL said:
#1054 - Unknown column 'i.date' in 'on clause'

Обратился к руководству - http://dev.mysql.com/doc/refman/5.6/en/error-messages-server.html
Error: 1054 SQLSTATE: 42S22 (ER_BAD_FIELD_ERROR)
Message: Unknown column '%s' in '%s'

не пойму...
...
Рейтинг: 0 / 0
Сложить данные из 3 таблиц и обновить 4-ю.
    #38879315
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mc Doc#1054 - Unknown column 'i.date' in 'on clause' А перевести не пробовал?
...
Рейтинг: 0 / 0
Сложить данные из 3 таблиц и обновить 4-ю.
    #38879401
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mc DocЯ что то упустил... пойму что....названия столбцов
я ж только смысл запроса написал
...
Рейтинг: 0 / 0
Сложить данные из 3 таблиц и обновить 4-ю.
    #38886424
Mc Doc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое, невнимательностьи желание быстрее сделать.

Решение - если кому понадобится:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
update {название таблицы} i
join user1 on internet_date=user1_date
join user2 on internet_date=user2_date
join user3 on internet_date=user3_date
set `i`.`i_01_00` = `user1`.`u1_01_00` + `user2`.`u2_01_00` + `user3`.`u3_01_00`,
    `i`.`i_02_00` = `user1`.`u1_02_00` + `user2`.`u2_02_00` + `user3`.`u3_02_00`,
.
.
.
    `i`.`i_23_00` = `user1`.`u1_23_00` + `user2`.`u2_23_00` + `user3`.`u3_23_00`,
    `i`.`i_23_59` = `user1`.`u1_23_59` + `user2`.`u2_23_59` + `user3`.`u3_23_59`
where `internet_date` = {дата которая нужна}
...
Рейтинг: 0 / 0
Сложить данные из 3 таблиц и обновить 4-ю.
    #38886436
Mc Doc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Только в толк не возму, почему коряво склыдывает некоторые строки?
Например - 2015-01-02 время 02-00
u1 - 0.064
u2 - 0.004
u3 - 0.007

Итог сложения 0.075000....0001 - почему?
Некоторых нормально, в некоторых вот такая ерунда.

...
Рейтинг: 0 / 0
Сложить данные из 3 таблиц и обновить 4-ю.
    #38886748
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Сложить данные из 3 таблиц и обновить 4-ю.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]