2013-07-04 2 views
1

질문이 있습니다.데이터가 누락되었을 때 행 선택

나는이 직선적 인 foreward 쿼리를 사용하여 매일 데이터를 검색합니다. 데이터의 일부는 ID입니다.

예를 들어 ID가 001 002 003 및 004입니다. 모든 ID에는 데이터가있는 일부 열이 있습니다. 매일 그 데이터를 기반으로 보고서를 생성합니다. 1 개 ID에 대한

ID Date Value 
001 2013-07-02 900 
002 2013-07-02 800 
003 2013-07-02 750 
004 2013-07-02 950 
Select * 

FROM 
    myTable 

WHERE datum > now() - INTERVAL '2 days' and ht not in (select ht from blocked_ht) 

order by ht, id; 

몇 번 가져 오기가 실패 아이크 전형적인 하루 보인다. 그래서 내 데이터는 한 ID가 그래서 내가 날짜 및 0 값없이 ID를 instert (Japserreports에서 만든) 내 보고서에서 누락 시각화 및 쿼리를 eddited 것을 알고

ID Date Value 
001 2013-07-02 900 
003 2013-07-02 750 
004 2013-07-02 950 

그것의 중요한

다음과 같습니다

SELECT * 

FROM 
    "lptv_import" lptv_import 

WHERE datum > now() - INTERVAL '2 days' and ht not in (select ht from negeren_ht) OR datum IS NULL 

order by ht, id; 

이제 데이터는 다음과 같습니다 : 날짜와 함께 ID 002이 없을 때

001 2013-07-02 900 
002   800 
003 2013-07-02 750 
004 2013-07-02 950 

어떻게 날짜없이 tabel에서 행을 선택 할 수 있습니까?

흠,이

+1

테이블 날짜와 날짜없이 002, 귀하의 경우처럼, 하나 개의 ID로 여러 레코드를 가질 수 있습니다 ... 내가 생각했던 것보다 더 compliacted 보인다 –

답변

1
select 
    id, coalesce(datum::text, 'NULL') as "date", "value" 
from 
    (
     select distinct id 
     from lptv 
    ) id 
    left join 
    lptv using (id) 
where 
    datum > now() - INTERVAL '2 days' 
    and not exists (select ht from negeren_ht where ht = lptv.ht) 
order by id