データセットをループして、CASE
を使用して、条件(uut_status)が 'passed'に設定されているかどうかを確認します。その条件が設定されている場合は、レコードが必要です。そうでなければ私はしません。レコードをスキップするには、どのようにmysql CASEまたはIFを取得しますか?
現時点では、私が望むかどうかにかかわらず、すべての記録が戻ってきます。 、uut_serial_numberによって
select CASE WHEN UUT_STATUS = 'passed' THEN uut_serial_number END,
CASE WHEN UUT_STATUS = 'passed' THEN uut_status END,
CASE WHEN UUT_STATUS = 'passed' THEN min(START_DATE_TIME) END
from
uut_result
where
(START_DATE_TIME > '2016-06-16 00:00:00' AND START_DATE_TIME < '2016-06-16 23:59:59') and product_id=2513 and BATCH_SERIAL_NUMBER like "12 Initial Response Test"
グループ、uut_status uut_serial_numberのASCによって
順序をPRODUCT_ID;:私はしたくないものはnullに設定case文で確認した値に戻って来ています
戻っている:
SN123 Passed 2016-06-16 08:50:20
SN124 Passed 2016-06-16 16:46:57
NULL NULL NULL
SN126 Passed 2016-06-16 00:43:59
私はそれを返すようにしたいことは
SN123 Passed 2016-06-16 08:50:20
SN124 Passed 2016-06-16 16:46:57
SN126 Passed 2016-06-16 00:43:59
ときにどのように私は単に私がリターンセットからたくないレコードを除外していますか?
明確化 - たとえばSN456となります。 SN456は午前9時に検査されます。それは失敗する。しかし、微調整後、再び9.30amでテストされ、合格します。SN457は9.05amでテストされています。それは通ります。
私たちがしたいことは次のとおりです。
SN457 09:05:00
我々はしたくない何かがある:SN456は、その最初のテストに失敗したため、最初のパスの結果に表示されていない
SN457 09:05:00
SN456 09:30:00
。
希望が明確になります。
いいえ、動作していません。合格した最初のテストが返されます。これは私がヒットした問題です。最初のテストをパスすることができますが、私が望むのは、ユニットが通過した最初のテストです。 – gedq
@gedq最新の回答をご覧ください – Peter