у меня есть очень сложный стол, который выглядит так: -MYSQL Комплексное обновление для повторяющихся строк
Snos Column1 Column2 Column3 Column4 Column5 Column6 1 AD AD1 C1 2011 P1 6435200 2 AD AD1 C1 2010 P1 234 3 AD AD1 C1 2009 P1 6435 4 BD AD2 C2 2010 P2 198448333 5 CD AD3 C3 2011 P3 194414870
Теперь мне нужно обработать запрос, который должен дублировать строку, в которой предположим, что p2, p3 или p1, p2 или даже просто значение p2 недоступно для данного года или для любого из 2009 или 2010 или 2011 годов, а значение последнего столбца равно нулю.
Так что теперь моя база данных должна выглядеть -
Snos Column1 Column2 Column3 Column4 Column5 Column6 1 AD AD1 C1 2011 P1 6435200 2 AD AD1 C1 2010 P1 234 3 AD AD1 C1 2009 P1 6435 4 AD AD1 C1 2011 P2 0 5 AD AD1 C1 2010 P2 0 6 AD AD1 C1 2009 P2 0 7 AD AD1 C1 2011 P3 0 8 AD AD1 C1 2010 P3 0 9 AD AD1 C1 2009 P3 0 10 BD AD2 C2 2010 P2 198448333 11 BD AD2 C2 2009 P2 0 12 BD AD2 C2 2011 P2 0 13 BD AD2 C2 2010 P1 0 14 BD AD2 C2 2009 P1 0 15 BD AD2 C2 2011 P1 0 16 BD AD2 C2 2010 P3 0 17 BD AD2 C2 2009 P3 0 18 BD AD2 C2 2011 P3 0 19 CD AD3 C3 2011 P3 194414870 20 CD AD3 C3 2009 P3 0 21 CD AD3 C3 2010 P3 0 22 CD AD3 C3 2011 P1 0 23 CD AD3 C3 2009 P1 0 24 CD AD3 C3 2010 P1 0 25 CD AD3 C3 2011 P2 0 26 CD AD3 C3 2009 P2 0 27 CD AD3 C3 2010 P2 0
Я попытался использовать временную таблицу, как
CREATE TEMPORARY TABLE tmptable_1 SELECT * FROM table WHERE *Some Condition*; Some If Else Then UPDATE tmptable_1 SET Column6 = 0; INSERT INTO table SELECT * FROM tmptable_1; DROP TEMPORARY TABLE IF EXISTS tmptable_1;
но не работает. Может кто-нибудь мне помочь.
Каковы уникальные столбцы ограничений в этой таблице. Например, если вы проверили бы AD до 2012 года в столбце 1, то столбец 4 должен иметь значение 2012 года в столбце 6, а остальные столбцы на 2012 год должны иметь дублирование столбцов с 2011 года? –
Да. В точку. Он должен иметь 0, если данные недоступны. Подобно случаям, когда P1, P2 доступны в столбце 5, поэтому он должен вставлять p3 в течение всех лет, дублируя значение остатка и имея нуль в последнем столбце. – Rockr