2016-11-17 20 views
1

rStatus = ' - 'またはrStatus = 'Long Stay'およびrStatus = 'Check Out'の行を除いて、hk_historyからhk_historyにすべての行をコピーしたいとします。sql insert into、select、whereステートメント

' - 'はrStatus属性のデフォルト値です。

+6

'hk_room1;' ';'は文を終了します。 –

+1

上記をクリアしないでください。 where節を挿入の一部として実行する場合は 'hk_room1'の後に'; 'を削除してください。 – xQbert

+0

は、あなたが思いつく列名前の中で最も秘密のセットですか? – e4c5

答えて

0

あなたはセミコロンbeforを持って

INSERT INTO hk_history 
(rNo,rStatus,bs,bq,hk,ds,dq,pc,twl,fm,amt,db,mw,hkR,fo_R,svR,rDate) 
SELECT rNo,rStatus,bs,bq,hk,ds,dq,pc,twl,fm,amt,db,mw,hkR,fo_R,svR,rDate 
FROM hk_room1; 
WHERE rStatus <> '-'; 

または

INSERT INTO hk_history 
(rNo,rStatus,bs,bq,hk,ds,dq,pc,twl,fm,amt,db,mw,hkR,fo_R,svR,rDate) 
SELECT rNo,rStatus,bs,bq,hk,ds,dq,pc,twl,fm,amt,db,mw,hkR,fo_R,svR,rDate 
FROM hk_room1; 
WHERE rStatus = 'Long Stay' AND rStatus = 'Check Out'; 

but I got this error

+0

私は見るので、問題はセミコロンです。ありがとうございました。 – 8man

0
INSERT INTO hk_history 
(rNo,rStatus,bs,bq,hk,ds,dq,pc,twl,fm,amt,db,mw,hkR,fo_R,svR,rDate) 
SELECT rNo,rStatus,bs,bq,hk,ds,dq,pc,twl,fm,amt,db,mw,hkR,fo_R,svR,rDate 
FROM hk_room1 
WHERE rStatus IN ('-', 'Long Stay' , 'Check Out') 
; 

これは役立つはず:

は、私は、これら二つのクエリを試してみましたE最初のクエリでwhere:あなたはそれを削除する必要が

INSERT INTO hk_history 
    (rNo,rStatus,bs,bq,hk,ds,dq,pc,twl,fm,amt,db,mw,hkR,fo_R,svR,rDate) 
    SELECT rNo,rStatus,bs,bq,hk,ds,dq,pc,twl,fm,amt,db,mw,hkR,fo_R,svR,rDate 
    FROM hk_room1; 
    -------------^ 
    WHERE rStatus <> '-'; 

。これを実現するために

RSTATUS =と行 以外hk_historyにhk_roomテーブルからすべての行をコピーしたい ' - ' OR RSTATUS = 'ロングステイ' とRSTATUSは= 'チェックアウト'。

INSERT INTO hk_history 
    (rNo,rStatus,bs,bq,hk,ds,dq,pc,twl,fm,amt,db,mw,hkR,fo_R,svR,rDate) 
    SELECT rNo,rStatus,bs,bq,hk,ds,dq,pc,twl,fm,amt,db,mw,hkR,fo_R,svR,rDate 
    FROM hk_room1 
    WHERE NOT (rStatus = '-' OR 
       rStatus = 'Long Stay' and rStatus = 'Check Out' 
      ); 

することもできますなどの語句:

ただ一つの文を使用し

WHERE rStatus <> '-' AND 
      (rStatus <> 'Long Stay' OR rStatus <> 'Check Out') 

ただし、以前のバージョンは、あなたの意思について明確に思えます。