2012-07-25 44 views
1

我有一個MySQL表,其中有工資欄。我能夠使用以下列計算列的18%和9%的值:mysql將計算結果添加到表列

SELECT SALARY,SALARY * .09作爲'PS',SALARY * .12作爲'GS'FROM database.table;

  1. 如何根據sql語句的結果在此表上添加其他列?我的意思是我想添加專欄'PS'和'GS'到我的桌子。

  2. 如果這可能在同一張表上,我將如何根據sql語句(包含PS和GS的新表)通過sql腳本/語句創建另一個表。

回答

1

1)爲了添加一個額外的列到表中,您必須使用alter命令。

ALTER TABLE database.table ADD PS varchar(10); ---- or whatever type of column 
ALTER TABLE database.table ADD GS varchar(10); ---- or whatever type of column 
UPDATE database.table SET PS = SALARY * .09, GS = SALARY * .12; 

2)您必須先創建表格,然後在其中插入先前的查詢。

CREATE TABLE database.secondtable (PS varchar(10), GS varchar(10)); 
INSERT INTO database.secondtable (PS,GS) VALUES(SELECT SALARY, SALARY * .09 as 'PS', SALARY * .12 as 'GS' FROM database.table); 
+0

這正是我一直在尋找的..非常感謝! – ix3 2012-07-25 16:20:25

0

如果你想在GS是在同一個表,你需要採取的SQL查詢值 你說,給一個變量,並與另一查詢GS

+0

我不知道該怎麼做..你能給我一個例子嗎? – ix3 2012-07-25 16:21:02

0

問題1更新表,您可以簡單地將兩個新字段添加到表格中(我不會在這裏介紹這一點,因爲有充足的關於如何添加字段的文檔)。然後運行以下查詢

UPDATE表SET PS = SALARY * .09,GS = SALARY * .12;

對於您可以根據像這樣的任何查詢的結果德創建表的第二個問題:

CREATE TABLE表名 SELECT * FROM orig_table;

請注意,您可以在此處使用任何種類的SELECT語句。

這東西真的很基本的SQL。這很容易在MySQL文檔中找到。

+0

當我這樣做時:UPDATE表SET PS = SALARY * .09,GS = SALARY * .12;它不會添加爲我的桌子上的PS和GS列..它說錯誤代碼:1054.'字段列表'中的未知列'PS' – ix3 2012-07-25 16:10:38

+0

@ ix3您必須先添加列。邁克在回答中告訴過你。在更新表格之前,請參閱上面關於如何添加列的回答。 – 2012-07-25 16:17:32