かぶった
上のテーブルと考え方が同じ方法がここですでに出てたよ...orz
でも同じテーブル構成から全然違うSELECTが出てくる、ってのが面白いよね。
で、記事のコメントに、
あー。
income(収入)とoutgo(支出)の一方はNULL/他方はNULLでない!って条件の実現
accountの符号から income と outgo ってカラムがあるかのように”見せかける”のかー
もともとincome/outgoがあって、この制約が”後だしジャンケン”的にくっついたらどぉなるでしょか(いぢわる)。
なんてお題が。
で、それへの返信がこのエントリ。
エントリ中に、
ただ、本当にやるとしたら、許されるとしたらテーブル定義変えてしまいます。
とあるように、テーブル定義変えちゃうのが一番ですね。
たまたま上で書いたテーブル名がもともとのテーブル名とかぶってないので、丸ごとデータを移してしまって、後はcashboxにおさらばしてもらうなら、
INSERT INTO Cashes SELECT date, summary, income - outgo, note FROM cashbox; DROP TABLE cashbox;
で。
追記:
incomeかoutgoにはNULLが入ってるんだから、引き算しちゃダメじゃん。
INSERT INTO Cashes SELECT date , summary , coalesce(income, 0) - coalesce(outgo, 0) , note FROM cashbox;
ただしくはこうだな。