2012-01-06 11 views
1

次のシナリオでSQLステートメントを作成する方法を知っておく必要があります。SQL Updateステートメントの作成

私は2つの列で構成されるテーブルを持っています。 ParentNameおよびNo_Of_Kids。その親Aは別の3人の子供を持っている2011年に

今(2008年)。私たちは、親Aと親Aが2人の子供を持っていたと呼ばれるレコードを持っていると言うので、私は親Aは5人の子供を持っていると言って、このテーブルを更新する必要があります全部。

UPDATE ParentKidsTable 
SET parentName=value, No_Of_kids=??? // (how to write the SQL no. of Kids in 2008 + no. of kids in 2011) 
WHERE parentName=some_value 
+1

なぜparentNameを再度設定していますか? – Manish

+0

ああ。私はそれを削除する必要があります – Illep

答えて

1

あなたはN個の子供を追加する一般的なケースを探していると仮定しているので、そうしない最初に値No_Of_Kidsを検索する必要があります。

UPDATE ParentKidsTable 
SET No_Of_Kids = No_Of_Kids + 3 
WHERE ParentName = 'some_value' 
2

テーブルを更新するための一般的な文がある:あなたのケースでそう

UPDATE table 
SET field = 'newValue' 
WHERE otherfield = 'condition' 

これは作る:

UPDATE ParentKidsTable 
SET No_Of_Kids = 5 
WHERE ParentName = 'some_value' 

これはNo_Of_KidsParentNamesome_valueに等しい5を更新します。文字列リテラルをアポストロフィの間に入れてください。

あなたが行うことができ、まだ既存の番号に子供たちの一定数を追加したい場合:基本的に短い(より良い)である

UPDATE ParentKidsTable 
SET No_Of_Kids = (No_Of_Kids + 3) 
WHERE ParentName = 'some_value' 

用:

UPDATE ParentKidsTable 
SET No_Of_Kids = ((SELECT No_Of_Kids 
        FROM ParentKidsTable 
        WHERE ParentName = 'some_value') + 3) 
WHERE ParentName = 'some_value' 
+0

または 'SET No_Of_Kids = No_Of_Kids + 3' –

+0

いいえ、私は2011年の子供の数を知っています(3)ので、私は新しい子供(3)で前の2人の子供を追加する必要がありますどのように私はこれを行うことができますか? – Illep

+0

実際には、以前に保存した値に値を追加したいと思います。 2 + 3 = 5 – Illep

2

数をインクリメントします子供の:

UPDATE ParentKidsTable 
SET No_Of_Kids = No_Of_Kids + 3 
WHERE ParentName = 'some_value'