我有一张非常复杂的表格,是这样的:-
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值对于该特定年份或从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;
但它不起作用。有谁能帮我。
下面是一个可以使用的查询示例:
insert into tablename (Column1, Column2, Column3, Column4, Column5, Column6)
select "BD","AD2","C2", column4,"P2","0"
from tablename where
column4 in (select distinct column4 from test)
and column4 not in (select distinct column4 from test where column5 = "P2");