2011-12-23 18 views
-1

私はこのクエリを持っていますが、それはうまくいきます。質問がテーブルに存在しない場合、クエリのNULLカラム値を持つ方法があればですか?SQLクエリのヘルプ、いくつかのエキスパートの意見が必要

UPDATE PRD_WOCNT 
SET c1 = (
    SELECT WO_CNT.RATE FROM WO_CNT 
    WHERE WO_CNT.CNT = PRD_WOCNT.c1 
) 
WHERE EXISTS (
    SELECT WO_CNT.CNT FROM WO_CNT 
    WHERE WO_CNT.CNT = PRD_WOCNT.c1 
) 

右は、2番目のテーブルを使用して、販売コードのメインテーブル値を手数料率に更新します。テーブルには存在しない販売コードが入力されることもありますので、売上コードをドル値として追加して、合計を間違えさせることがあります。

私はあまりPHPを知らず、単純にクエリを変更できるのであれば気にしないでください...暗闇の中でスタブです。PHP側でこれを行う必要があるでしょうしかし、どのように私のクエリがphpに存在しないことを伝えることができるのか分かりません。

+0

例は不完全です。サンプルテーブルスキーマ( 'CREATE TABLE'ステートメントとして)、サンプルデータ(' INSERT INTO ... VALUES'ステートメントとして)、および望ましい結果を提供してください。 – outis

+1

データベースシステムに名前を付けます。 –

答えて

0

私は実行されていません。私はそれがうまくいくと思います。この文字列で検索してください:

UPDATE PRD_WOCNT SET c1 = CASE 
     WHEN EXISTS (
    SELECT WO_CNT.CNT FROM WO_CNT 
    WHERE WO_CNT.CNT = PRD_WOCNT.c1 
) 
THEN (
    SELECT WO_CNT.RATE FROM WO_CNT 
    WHERE WO_CNT.CNT = PRD_WOCNT.c1 
) 
     ELSE NULL 
     END 
3
UPDATE a 
SET c1 = WO_CNT.RATE 
FROM PRD_WOCNT a 
LEFT JOIN WO_CNT b 
ON b.CNT = a.c1