|
|
|
массовое изменение значений ячеек
|
|||
|---|---|---|---|
|
#18+
приветствую вас, добрые форумчане! вот какой страшной задачей я озадачился: предположим у нас есть таблица, в которой имеются некие суммы по каждому из месяцев: Код: plaintext 1. 2. 3. 4. ситуация усложняется еще тем, что в моей таблице перед самими месяцами таких вот столбцов с id еще 5 штук... тоесть вместо Код: sql 1. мне в этом запросе придется писать еще чтото типа Код: sql 1. и если предложите писать после каждого месяца этот WHERE, это напрочь снесет мою крышу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2015, 22:00:10 |
|
||
|
массовое изменение значений ячеек
|
|||
|---|---|---|---|
|
#18+
S_Layer, Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2015, 22:05:10 |
|
||
|
массовое изменение значений ячеек
|
|||
|---|---|---|---|
|
#18+
[quot S_Layer]приветствую вас, добрые форумчане! вот какой страшной задачей я озадачился: предположим у нас есть таблица, в которой имеются некие суммы по каждому из месяцев: Код: plaintext 1. 2. 3. 4. уже плохо, уже двойка. нарушение первой нормальной формы, нужно перепроектировать бд, должна быть одна сумма и плюс месяц в первичный ключь, и 12 записей на год, а не 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2015, 22:50:18 |
|
||
|
массовое изменение значений ячеек
|
|||
|---|---|---|---|
|
#18+
MasterZivнарушение первой нормальной формы, нужно перепроектировать бд, должна быть одна сумма и плюс месяц в первичный ключь, и 12 записей на год, а не 1. чо? всмысле не могли бы вы конкретизировать своё мнение? если быть точным, то я не понял ни процента смысла вашего высказывания ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2015, 23:07:40 |
|
||
|
массовое изменение значений ячеек
|
|||
|---|---|---|---|
|
#18+
вадяWHERE id in(1,3,5,8)не! это пригодится если надо 4 строки с этими айдишниками сбивать в кучку. а я имел ввиду, что на самом деле у меня строение таблицы примерно следующее (в месяцах там деньги, некие суммы денег): Код: plaintext 1. 2. и вот надо теперь добавить вот какую строку Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2015, 23:25:13 |
|
||
|
массовое изменение значений ячеек
|
|||
|---|---|---|---|
|
#18+
S_LayerMasterZivнарушение первой нормальной формы, нужно перепроектировать бд, должна быть одна сумма и плюс месяц в первичный ключь, и 12 записей на год, а не 1. чо? всмысле не могли бы вы конкретизировать своё мнение? если быть точным, то я не понял ни процента смысла вашего высказывания ну перечитай еще раз... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2015, 00:07:03 |
|
||
|
массовое изменение значений ячеек
|
|||
|---|---|---|---|
|
#18+
MasterZiv нарушение первой нормальной формы , нужно перепроектировать бд, должна быть одна сумма и плюс месяц в первичный ключь, и 12 записей на год, а не 1.нуу, ващет не первой ... а так - "да", у ТС явный "Эксель головного мозга" и таблица, "криком кричит" - требует нормализации ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2015, 00:17:11 |
|
||
|
массовое изменение значений ячеек
|
|||
|---|---|---|---|
|
#18+
тоесть структуру устроить вместо 1 строки с 6ю айдишниками и 12ю суммами по месяцам сделать 6 айдишников, сумму и номер месяца? а потом при вносе данных делать 12 запросов? вносятся данные исключительно все 12 месяцев за раз. а потом, когда найдется решение вышестоящей проблемы, то еще 12 запросов, если надо всего одну такую строчку добавить. а если их 5 - то предлагаете делать 60 запросов на 1 клик пользователя?) имхо, милейший, это бред. я с такой структуры начал, потом понял что нужно всетаки именно так, как описано в вопросе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2015, 00:18:55 |
|
||
|
массовое изменение значений ячеек
|
|||
|---|---|---|---|
|
#18+
S_Layer, где 6ть айдишников? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2015, 00:24:04 |
|
||
|
массовое изменение значений ячеек
|
|||
|---|---|---|---|
|
#18+
в структуре таблицы у меня 1st_id, 2nd_id, 3rd_id, 4rd_id, 5th_id, 6th_id ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2015, 00:27:27 |
|
||
|
массовое изменение значений ячеек
|
|||
|---|---|---|---|
|
#18+
S_Layerв структуре таблицы у меня 1st_id, 2nd_id, 3rd_id, 4rd_id, 5th_id, 6th_idИи? в чём смысл этих 6ти айдишников? Значения М1-М12 для них, что одинаковые? Если для них смысл есть, как для отдельных сущностей (в чём я сильно сомневаюсь), то это ГРУППА, которой будет присвоен свой ИД, и ИД этой группы и будет использоваться в таб. id_gr M Value ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2015, 00:33:59 |
|
||
|
массовое изменение значений ячеек
|
|||
|---|---|---|---|
|
#18+
ну коль с образным мышлением не получается, давайте придумаем подходящий поясняющий аналоговый пример. скажем, country_id, city_id, street_id и 12 полей с месяцами, в которые вносятся итоговые суммы по аренде за каждый месяц отдельно. может так понятнее строение таблицы. так вот, у меня структура почти такая же, только без привязок одного к другому. абстрактная "улица" с айдишником 12 может быть в любом городе, в любой из стран. и вот скажем мне надо добавить строку с улицей "Дерибасовская", находящаяся во Франции, в Городе Ламумба, а значение полей 12-ти месяцев должно сложиться из значений полей тех же месяцев (март+март, август+август) улиц "Брайтон Бич" и "5ая Авеню", в той же Франции, в том же Ламумба. весьма странный пример, но точно описывает структуру моей таблицы. (а по предложению многоуважаемого MasterZiv эта операция будет делать минимум(!) 12 запросов) по вообще абстрактному объяснению - езжайте во Францию, город Ламумба, возьмите из холодильника на Брайтон Бич кусок колбасы, возьмите из холодильника на 5й Авеню хлеба шматок и на улице Дерибасовская в холодильник положите получившийся бутерброд. что-то меня несёт по-страшному)))))))))))))) не читайте этот абзац-бред ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2015, 01:01:41 |
|
||
|
массовое изменение значений ячеек
|
|||
|---|---|---|---|
|
#18+
*немного подумав* двумя запросами я всегда успею это сделать: Код: sql 1. получаем две строки. складываем каждый из месяцев попарно и результат засовываем в таблицу Код: sql 1. но как упростить это до одного запроса?... (а по предложению многоуважаемого MasterZiv эта операция будет делать 13 запросов (1 на выборку 24х строк и 12 INSERT'ов)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2015, 01:17:11 |
|
||
|
массовое изменение значений ячеек
|
|||
|---|---|---|---|
|
#18+
S_LayerвадяWHERE id in(1,3,5,8)не! это пригодится если надо 4 строки с этими айдишниками сбивать в кучку. а я имел ввиду, что на самом деле у меня строение таблицы примерно следующее (в месяцах там деньги, некие суммы денег): Код: plaintext 1. 2. и вот надо теперь добавить вот какую строку Код: plaintext 1. Код: sql 1. 2. 3. P.S. MasterZiv, кстати, скорее всего прав насчет реорганизации таблицы. Тогда запрос был в разы короче и проще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2015, 01:19:00 |
|
||
|
массовое изменение значений ячеек
|
|||
|---|---|---|---|
|
#18+
S_Layerну коль с образным мышлением не получается, давайте придумаем подходящий поясняющий аналоговый пример. скажем, country_id, city_id, street_id и 12 полей с месяцами, в которые вносятся итоговые суммы по аренде за каждый месяц отдельно. может так понятнее строение таблицы. так вот, у меня структура почти такая же, только без привязок одного к другому. абстрактная "улица" с айдишником 12 может быть в любом городе, в любой из стран. и вот скажем мне надо добавить строку с улицей "Дерибасовская", находящаяся во Франции, в Городе Ламумба, а значение полей 12-ти месяцев должно сложиться из значений полей тех же месяцев (март+март, август+август) улиц "Брайтон Бич" и "5ая Авеню", в той же Франции, в том же Ламумба. весьма странный пример, но точно описывает структуру моей таблицы. (а по предложению многоуважаемого MasterZiv эта операция будет делать минимум(!) 12 запросов) по вообще абстрактному объяснению - езжайте во Францию, город Ламумба, возьмите из холодильника на Брайтон Бич кусок колбасы, возьмите из холодильника на 5й Авеню хлеба шматок и на улице Дерибасовская в холодильник положите получившийся бутерброд. что-то меня несёт по-страшному)))))))))))))) не читайте этот абзац-бредЭээ, нет, коллега :) С аналогией стало только хуже ... "Аналогия" - четко иерархическая, и просто обязанна быть нормализованна Страны ==> ГородаСтран ==> УлицыГородовСтран ==> ТаТаблицаПроКоторуюРечь ТаТаблицаПроКоторуюРечь, с полями ид_УлицыГородовСтран М Значение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2015, 01:27:11 |
|
||
|
массовое изменение значений ячеек
|
|||
|---|---|---|---|
|
#18+
miksoftЧто-то Вы сами себе противоречите. Это суммирование разве не есть "сбивание в кучу"? да, тут я попутался. наверное это можно както приложить miksoftINSERT INTO mytable (1st_id, 2nd_id, 3rd_id, ... , month1, month2, ...) SELECT 7, MIN(2nd_id), MIN(3rd_id), ... , SUM(month1), SUM(month2), ... WHERE id IN (1,2) SELECT 7 - это так писать айдишник новой записи?) а почему MIN(2nd_id), MIN(3rd_id)? это что даст? ну тут щас сам подумаю на что заменить. мысли вроде бы получили вектор. ушел в себя, думать... miksoftP.S. MasterZiv, кстати, скорее всего прав насчет реорганизации таблицы. Тогда запрос был в разы короче и проще.... и в разы их (запросов) больше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2015, 01:48:21 |
|
||
|
массовое изменение значений ячеек
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. прекраснейшее решение! СПАСИБО! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2015, 02:15:55 |
|
||
|
массовое изменение значений ячеек
|
|||
|---|---|---|---|
|
#18+
только 5чку там пропустил... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2015, 02:17:27 |
|
||
|
массовое изменение значений ячеек
|
|||
|---|---|---|---|
|
#18+
я всегда знал две вещи: нет предела извращениям и мозг варит ночью лучше. усложняем задачу: теперь нам надо не сложить 2 этих значения, а, например, вычесть одно из другого или, например, умножить или даже разницу высчитать. и вот решение! Код: sql 1. 2. 3. 4. 5. 6. там где написано ON 1=1 явно можно написать 1 или true или еще что-то, но без ON как таковой оно не хочет работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2015, 04:21:59 |
|
||
|
массовое изменение значений ячеек
|
|||
|---|---|---|---|
|
#18+
S_Layerам где написано ON 1=1 явно можно написать 1 или true или еще что-то,а ещё там можно написать cross jоin или вообще написать inner join и убрать условия связывания из where туда, где им самое место ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2015, 05:01:56 |
|
||
|
массовое изменение значений ячеек
|
|||
|---|---|---|---|
|
#18+
S_LayermiksoftP.S. MasterZiv, кстати, скорее всего прав насчет реорганизации таблицы. Тогда запрос был в разы короче и проще.... и в разы их (запросов) большеНасколько я понял его мысль - один запрос так и останется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2015, 09:23:08 |
|
||
|
массовое изменение значений ячеек
|
|||
|---|---|---|---|
|
#18+
КоддовMasterZiv нарушение первой нормальной формы , нужно перепроектировать бд, должна быть одна сумма и плюс месяц в первичный ключь, и 12 записей на год, а не 1.нуу, ващет не первой ... Именно первой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2015, 12:36:10 |
|
||
|
массовое изменение значений ячеек
|
|||
|---|---|---|---|
|
#18+
S_Layerтоесть структуру устроить вместо 1 строки с 6ю айдишниками и 12ю суммами по месяцам сделать 6 айдишников, сумму и номер месяца? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. S_Layerа потом при вносе данных делать 12 запросов? вносятся данные исключительно все 12 месяцев за раз. Да. Это не имеет значения, сколько будет запросов вставки. S_Layerа потом, когда найдется решение вышестоящей проблемы, то еще 12 запросов, если надо всего одну такую строчку добавить. а если их 5 - то предлагаете делать 60 запросов на 1 клик пользователя?) имхо, милейший, это бред. я с такой структуры начал, потом понял что нужно всетаки именно так, как описано в вопросе. Ну, успехов в работе, как говорится. Я сделал всё, что мог. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2015, 12:40:05 |
|
||
|
массовое изменение значений ячеек
|
|||
|---|---|---|---|
|
#18+
MasterZivКоддовпропущено... нуу, ващет не первой ... Именно первой.И где же там несколько значений в одном поле? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2015, 12:42:09 |
|
||
|
массовое изменение значений ячеек
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. автортеперь нужно внести некую новую строку, в которой мне нужно получить сумму записей по каждому из месяцев с id, например, 1 и с id, например, 2. Код: sql 1. 2. 3. 4. Только тут ты что-то темнишь, потому что с конкретным ID и за конкретный месяц будет только одна запись -- суммировать нечего. Возможно, имелось в виду Код: sql 1. 2. 3. 4. Ну тогда так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2015, 12:45:43 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38931265&tid=1833334]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
32ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 343ms |

| 0 / 0 |
