DHJJ [Hatsune's Journal Japan] blog

Hatsune's Journal Japan blog

目次

Blog 利用状況

ニュース

最新ツイート

運営サイト

Hatsune's Journal Japan
DHJJ

著作など

資格など

OCP
MCP

書庫

日記カテゴリ

わんくま同盟

income(収入)とoutgo(支出)の一方はNULL/他方はNULLでない!って条件の実現

元ネタ→http://blogs.wankuma.com/episteme/archive/2008/03/22/129054.aspx

SQLLiteは手元にないのでOracle11gでやってみた。

incomeとoutgoの2つの列ではなくaccount列に1本化して符号をつけることでincomeとoutgoのどちらかが必須という制約を張らなくても良いという方法になります。

DROP TABLE cashbox;
CREATE TABLE cashbox
  ( key     NUMBER PRIMARY KEY,
    setdate DATE NOT NULL,
    summary VARCHAR2(20),
    account NUMBER NOT NULL,
    note    VARCHAR2(20)
  )
/
CREATE SEQUENCE autonumber
/
CREATE OR REPLACE TRIGGER cashbox_BI
BEFORE INSERT ON cashbox FOR EACH ROW
BEGIN
 -- Oracle 11g
 :NEW.key := autonumber.NEXTVAL;
    -- Oracle 10g
 -- SELECT autonumber.NEXTVAL INTO :NEW.key FROM DUAL;
END;
/
CREATE INDEX XIE_cashbox ON cashbox ( setdate )
/
-- レコードをいくつか挿入
INSERT INTO cashbox
( setdate, summary, account )
VALUES ( '2008/02/29', 'leftover', -380);
INSERT INTO cashbox
( setdate, summary, account )
VALUES ( '2008/03/01', 'carryover', 380);
INSERT INTO cashbox
( setdate, summary, account )
VALUES ( '2008/03/01', 'from-mama', 5000);
INSERT INTO cashbox
( setdate, summary, account )
VALUES ( '2008/03/03', 'comic', -410);
INSERT INTO cashbox
( setdate, summary, account )
VALUES ( '2008/03/02', 'potato-chips', -147);
INSERT INTO cashbox
( setdate, summary, account )
VALUES ( '2008/03/04', 'from-granpa', 1000);
-- 全部出力してみる
SQL> SELECT * FROM cashbox ORDER BY setdate,key;
       KEY SETDATE  SUMMARY                 ACCOUNT NOTE
---------- -------- -------------------- ---------- --------------------
        21 08-02-29 leftover                   -380
        22 08-03-01 carryover                   380
        23 08-03-01 from-mama                  5000
        25 08-03-02 potato-chips               -147
        24 08-03-03 comic                      -410
        26 08-03-04 from-granpa                1000
-- 三月の収支 (あまり良いSELECT文じゃないかも)
SQL> SELECT income.account,ABS(outgo.account),income.account+outgo.account
  2  FROM
  3  (SELECT sum(account) as account
  4     FROM cashbox
  5    WHERE TRUNC(setdate,'MM')=TO_DATE('20080301','YYYYMMDD')
  6      AND account>=0) income,
  7  (SELECT sum(account) as account
  8     FROM cashbox
  9    WHERE TRUNC(setdate,'MM')=TO_DATE('20080301','YYYYMMDD')
 10      AND account<0) outgo
 11  ;
   ACCOUNT ABS(OUTGO.ACCOUNT) INCOME.ACCOUNT+OUTGO.ACCOUNT
---------- ------------------ ----------------------------
      6380                557                         5823

投稿日時 : 2008年3月22日 12:41

Feedback

# re: income(収入)とoutgo(支出)の一方はNULL/他方はNULLでない!って条件の実現 2008/03/22 12:51 επιστημη

あー。
accountの符号から income と outgo ってカラムがあるかのように”見せかける”のかー
もともとincome/outgoがあって、この制約が”後だしジャンケン”的にくっついたらどぉなるでしょか(いぢわる)。

# income(収入)とoutgo(支出)の一方は(略)をトリガーで実現 2008/03/22 13:25 DHJJ [Hatsune's Journal Japan]

income(収入)とoutgo(支出)の一方は(略)をトリガーで実現

# re: income(収入)とoutgo(支出)の一方はNULL/他方はNULLでない!って条件の実現 2008/03/22 14:10 bleis-tift

SELECTは
http://d.hatena.ne.jp/bleis-tift/20080322/1206159730
こんな感じでどうでしょう。

# re: income(収入)とoutgo(支出)の一方はNULL/他方はNULLでない!って条件の実現 2008/03/22 14:56 はつね

> bleis-tiftさん

たしかにCASE使った方がいいですね~。

# バーバリー バッグ 2012/11/06 14:59 http://burberry.suppa.jp/

今日は~^^またブログ覗かせていただきました。よろしくお願いします。

# how to order doxycycline https://doxycyline1st.com/
doxycycline hyclate 2022/02/26 0:32 Jusidkid

how to order doxycycline https://doxycyline1st.com/
doxycycline hyclate

# where to purchase doxycycline https://doxycyline1st.com/
order doxycycline online 2022/02/26 9:35 Jusidkid

where to purchase doxycycline https://doxycyline1st.com/
order doxycycline online

# buy clomiphene https://clomiden.fun/ 2022/04/12 12:50 Clomids

buy clomiphene https://clomiden.fun/

# lasix online https://buylasix.icu/
lasix 20 mg 2022/06/24 17:02 LasixRx

lasix online https://buylasix.icu/
lasix 20 mg

# clomid https://clomidonline.icu/ 2022/07/08 13:30 Clomidj

clomid https://clomidonline.icu/

# drug costs https://allpharm.store/ 2022/07/21 21:58 AllPharm

drug costs https://allpharm.store/

# ivermectin hookworm https://stromectolbestprice.com/ 2022/07/30 0:24 BestPrice

ivermectin hookworm https://stromectolbestprice.com/

# order prednisone online no prescription https://deltasone.icu/
prednisone canada prices 2022/08/22 9:37 Prednisone

order prednisone online no prescription https://deltasone.icu/
prednisone canada prices

# men's ed pills https://ed-pills.xyz/
over the counter erectile dysfunction pills 2022/09/15 19:07 EdPills

men's ed pills https://ed-pills.xyz/
over the counter erectile dysfunction pills

# pills erectile dysfunction https://ed-pills.xyz/
best ed pills at gnc 2022/09/16 7:28 EdPills

pills erectile dysfunction https://ed-pills.xyz/
best ed pills at gnc

# erectile dysfunction pills https://ed-pills.xyz/
male erection pills 2022/09/16 19:33 EdPills

erectile dysfunction pills https://ed-pills.xyz/
male erection pills

# mens ed pills https://ed-pills.xyz/
mens erection pills 2022/09/17 7:43 EdPills

mens ed pills https://ed-pills.xyz/
mens erection pills

# Read information now. Everything information about medication.
https://edonlinefast.com
Read information now. Learn about the side effects, dosages, and interactions. 2023/02/16 13:11 EdPills

Read information now. Everything information about medication.
https://edonlinefast.com
Read information now. Learn about the side effects, dosages, and interactions.

# doors2.txt;1 2023/03/14 17:00 JYHtOgQvLQGJyApxYRp

doors2.txt;1

# Наблюдаемая у дикарей боязнь инцеста представляет собой своего рода инфантильную черту. Здесь есть некоторое сходство с душевной жизнью невротиков. Известно, что выбор первого сексуального объекта у мальчика обычно связан с инцестом – таковым оказывае 2023/03/28 15:06 Наблюдаемая у дикарей боязнь инцеста представляет

Наблюдаемая у дикарей боязнь инцеста представляет собой своего рода инфантильную черту.
Здесь есть некоторое сходство с
душевной жизнью невротиков. Известно, что
выбор первого сексуального объекта у мальчика обычно связан с инцестом
? таковым оказывается либо мать, либо сестра.

В дальнейшем невротик может постоянно обнаруживать подобную черту.
Это будет говорить о том, что он не смог освободиться от детских условий проявления психосексуальности.
Как вернуть интерес к жизни: 11 шагов

# Наблюдаемая у дикарей боязнь инцеста представляет собой своего рода инфантильную черту. Здесь есть некоторое сходство с душевной жизнью невротиков. Известно, что выбор первого сексуального объекта у мальчика обычно связан с инцестом – таковым оказывае 2023/03/28 15:06 Наблюдаемая у дикарей боязнь инцеста представляет

Наблюдаемая у дикарей боязнь инцеста представляет собой своего рода инфантильную черту.
Здесь есть некоторое сходство с
душевной жизнью невротиков. Известно, что
выбор первого сексуального объекта у мальчика обычно связан с инцестом
? таковым оказывается либо мать, либо сестра.

В дальнейшем невротик может постоянно обнаруживать подобную черту.
Это будет говорить о том, что он не смог освободиться от детских условий проявления психосексуальности.
Как вернуть интерес к жизни: 11 шагов

# Наблюдаемая у дикарей боязнь инцеста представляет собой своего рода инфантильную черту. Здесь есть некоторое сходство с душевной жизнью невротиков. Известно, что выбор первого сексуального объекта у мальчика обычно связан с инцестом – таковым оказывае 2023/03/28 15:07 Наблюдаемая у дикарей боязнь инцеста представляет

Наблюдаемая у дикарей боязнь инцеста представляет собой своего рода инфантильную черту.
Здесь есть некоторое сходство с
душевной жизнью невротиков. Известно, что
выбор первого сексуального объекта у мальчика обычно связан с инцестом
? таковым оказывается либо мать, либо сестра.

В дальнейшем невротик может постоянно обнаруживать подобную черту.
Это будет говорить о том, что он не смог освободиться от детских условий проявления психосексуальности.
Как вернуть интерес к жизни: 11 шагов

# Наблюдаемая у дикарей боязнь инцеста представляет собой своего рода инфантильную черту. Здесь есть некоторое сходство с душевной жизнью невротиков. Известно, что выбор первого сексуального объекта у мальчика обычно связан с инцестом – таковым оказывае 2023/03/28 15:07 Наблюдаемая у дикарей боязнь инцеста представляет

Наблюдаемая у дикарей боязнь инцеста представляет собой своего рода инфантильную черту.
Здесь есть некоторое сходство с
душевной жизнью невротиков. Известно, что
выбор первого сексуального объекта у мальчика обычно связан с инцестом
? таковым оказывается либо мать, либо сестра.

В дальнейшем невротик может постоянно обнаруживать подобную черту.
Это будет говорить о том, что он не смог освободиться от детских условий проявления психосексуальности.
Как вернуть интерес к жизни: 11 шагов

# pillole per erezione immediata https://viasenzaricetta.com/# 2023/04/16 13:26 ViaSenza

pillole per erezione immediata https://viasenzaricetta.com/#

# sleeping pills over the counter https://overthecounter.pro/# 2023/05/08 23:12 OtcJikoliuj

sleeping pills over the counter https://overthecounter.pro/#

# 25 mg prednisone https://prednisonepills.pro/# - prednisone 1 tablet 2023/06/04 21:31 Prednisone

25 mg prednisone https://prednisonepills.pro/# - prednisone 1 tablet

# indian pharmacies safe https://indiapharmfd.com/# - indian pharmacies safe 2023/06/08 7:24 IndiaPharm

indian pharmacies safe https://indiapharmfd.com/# - indian pharmacies safe

# paxlovid india https://paxlovid.pro/# - buy paxlovid online 2023/07/02 17:30 Paxlovid

paxlovid india https://paxlovid.pro/# - buy paxlovid online

# buy cytotec online fast delivery https://cytotec.ink/# - buy cytotec 2023/07/26 14:39 PillsFree

buy cytotec online fast delivery https://cytotec.ink/# - buy cytotec

# best ed medications https://edpills.ink/# - cure ed 2023/07/27 1:13 EdPills

best ed medications https://edpills.ink/# - cure ed

タイトル
名前
Url
コメント