2010-12-31 5 views
0

7 개의 테이블. 각 테이블에는 fisherid라는 공통 엔티티가 있습니다. 각 테이블에는 CreatedBy, createdDate, LastModifiedBy 및 LastModifiedDate라는 네 개의 필드가 있습니다. 이 필드는 해당 테이블에서 마지막 작업 날짜와 사용자 이름을 추적합니다. 이제 문제는 피셔의 역사를 보여 주어야한다는 것입니다. 즉, 사용자가 특정 어부에게 한 일입니다. ActivityDate, UserName 및 Description 인 그리드에 3 열이 있습니다. 내가 원하는 것은 이런 식으로 표시하는 것입니다.단일 열에 여러 열 겹침

ActivityDate  User   Description 

------------ ----------- --------------------------- 

11/12/2010 Test User   Updated Address 
12/12/2010 Alexander   Created Note 

위 내용을 설명해 드리겠습니다. 테이블의 사용자 테스트 사용자가 필드를 업데이트하면 주소에서 주소 필드가 업데이트되었음을 ​​나타내거나 lastmodified date 및 lastmodifiedbyuser 필드 (null 또는 공백이 아닌 경우)를 기반으로 작업을 가져올 수 있어야합니다. 모든 테이블에서 비슷합니다. CreatedBy 및 CreatedDate가 null 인 경우 기록이 표시되지 않습니다. createdDate 및 createby 만 채워지면 생성 된 테이블 이름 또는 적절한 메시지가 표시됩니다.

시나리오가 명확하면 좋겠습니다.

답변

1

질문을 올바르게 이해했다면 이와 비슷한 것이 필요하다고 생각하십니까?

SELECT 
    isnull(LastModifiedDate,createdDate) as ActivityDate, 
    isnull(LastModifiedBy,createdBy) as User .... 
+0

그래서 당신은 내가 ActivityDate 등이 ISNULL (Table1.LastModifiedDate, Table2.LastModifiedDate, Table3.CreatedDate)와 같은 뭔가가 필요합니다 내가 여러 열이있는 경우하고 싶은 말이나 내가 하나 개의 테이블에 그것을 작동 할 수 있습니다. 제발 좀 더 분명하게 해주세요. –

+2

테이블이 적절하게 결합되어있는 한 테이블 이상에서 작업 할 수 있습니다. 'SelectNull (Table1.LastModifiedDate, Table2.LastModifiedDate, Table3.CreatedDate) as ActivityDate from Table1, Table2, Table3 어디서 Table1.fisherid = Table2.fisherid 및 Table1.fisherid = Table3.fisherid' – Malvolio

+0

내가 SQL 에서이 쿼리를 실행하는 경우 서버 2008 다음 오류 메시지가 나타납니다. [메시지 174, 수준 15, 상태 1, 상태 1 isnull 함수에 2 개의 인수가 필요합니다.] –

관련 문제