-4

私は2つのテーブルを持っています

1) テーブルを訪問

visit_id     |   visit_date    |   premises_name
   1             2012-04-25        abc
   2             2012-04-25        xyz
   3             2012-04-25        yio

2) サンプルテーブル

visit_id    |   sample_id     |   item_name
   1               abc_332          lmn
   1               xyz_342          pqr
   2               lsl_324          plk

各訪問は複数のサンプルを持つことができます

次の結果を出力するクエリが欲しい

visit_id   |  visit_date |  is_sample_taken
   1          2012-04-25         YES
   2          2012-04-25         YES
   3          2012-04-25         NO

私はたくさん検索しましたが、解決策を見つけることができませんでした。助けてください

4

2 に答える 2

2

次のようなものを試してください:

select visit_id , visit_date , case when sum(case when b.visit_id is NULL then 0 else 1 end) > 0 then  'YES' else 'NO' end as sampletaken
from visittable as a LEFT OUTER JOIN sampltetable as b on a.visit_id = b.visit_id   
group by visit_id , visit_date
于 2013-07-07T08:55:57.607 に答える
0

Hiren Dhadukの回答からの助け/ヒントにより、質問の解決策が得られました

SELECT v.v_id, v.v_date, (
    CASE WHEN EXISTS (
        SELECT sample_id
        FROM sample
        WHERE visit_id = v.v_id
    )
    THEN 1 ELSE 0 END
) AS is_sample_taken
FROM visit v
于 2013-07-07T10:01:24.193 に答える