1

私はこの表を持っています[表1]

cid | 到着しました| 到着日

[到着フィールドの値は[T]または[F]で、値は[F]です。到着日フィールドはNULLです。

1つのレコードは最大2つまでしか表示されない場合があります(到着した場合は1つのレコード= T、到着した場合は別のレコード= F)ただし、1回だけ表示されるレコードもあります。

1 | T | 2012-02-01
2 | F | [Null]
1 | F | [Null]
3 | T | 2012-03-05

このようなものを表示するクエリが必要です

cid | arrived | not_arrived
1      Yes          Yes
2      No           Yes
3      Yes          No
4

2 に答える 2

2

これは機能します:

SELECT
    cid,
    SUM(arrived = 'T') > 0 as arrived,
    SUM(arrived = 'F') > 0 as not_arrived 
FROM [Table 1]
GROUP BY cid;

ここで試すことができます:http ://sqlfiddle.com/#!2 / 2b5a7 / 1/0

于 2012-06-19T09:47:35.353 に答える
0

試す

select cid, 
   case when find_in_set('T', group_concat(arrived)) > 0 then 'yes'  else 'no' end as arrived, 
   case when find_in_set('F', group_concat(arrived)) > 0 then 'yes'  else 'no' end as not_arrived
from table1
group by cid
于 2012-06-19T09:49:00.983 に答える