같은

2011-08-18 3 views
-1

저는 두 SQL Server 데이터베이스의 테이블이 있습니다 table1table2같은

표 :

DATE  NAME CREDIT 
1/1/2011 BALU  100 
1/3/2011 BALU  200 

표 2 :

DATE  NAME DEBIT 
1/2/2011 BALU  100 
1/3/2011 BALU  50 

내가 표시 할을 다음 형식의 보고서 :

DATE  NAME CREDIT DEBIT 
1/1/2011 BALU  100  0 
1/2/2011 BALU  0 100 
1/3/2011 BALU  200  50 

내 문제는 두 테이블 모두 date 열이 있다는 것입니다.

두 테이블의 이름이 모두 date 인절을 사용하여 SELECT 문을 쓸 수 있습니까?

+1

문제가 있음을 명시하고 질문을 명확히하십시오. 명백한 문제가 귀하의 제목과 일치하지 않거나 명확하지 않습니다. – AJC

+0

이제 내 질문을 이해할 수 있습니까? –

+0

같은 날에 여러 개의 대변 처리 또는 대변 처리 작업이있을 수 있다고 가정 할 때 SUM 연산을 추가했습니다. (나는 또한 DATE 부분 만 사용하고 TIME은 사용하지 않는다고 가정합니다.) – AJC

답변

3

나는 아직도 당신이 몇 가지 세부 사항이 누락 원하는에 대해 긍정적 아닙니다. 그러나 비슷한 쿼리에서 작업 한 경험에 비추어 볼 때, 필자는 이것이 (또는 충분히 가까워 야 할 것 같은) 것이라고 생각한다.

SELECT ISNULL(C.DATE, D.DATE) DATE, ISNULL(C.NAME, D.NAME) NAME, SUM(C.CREDIT) CREDIT, SUM(D.DEBIT) DEBIT 
FROM TABLE_1 C 
FULL JOIN TABLE2 D ON D.DATE=C.DATE AND D.NAME=C.NAME 
WHERE ISNULL(C.DATE, D.DATE) BETWEEN @DATE1 AND @DATE2 
GROUP BY C.DATE, D.DATE, C.NAME, D.NAME 
+0

반환합니다. 이 qry 내 문제를 해결할 수 있습니다. 내 하찮은 영어 실력에 죄송하다는 말씀을 드리고 싶습니다. –

+0

물론, 영어도 제 모국어가 아닙니다 ... 다행히 도울 수 있습니다. – AJC

0

당신은 날짜, 내가 가정합니다 두 테이블을 연결 사이와 FK에 처음으로 지정하지 않기 때문에 ..

select ta.date, ta.name, ta.credit, tb.debit from table1 ta 
join table2 tb as (ta.name = tb.name) 
where ta.date between tb.date 
+0

그 두 테이블에 날짜 열이 위의 예제 table1 트랜잭션 날짜 1과 3입니다 table2 트랜잭션 날짜 2와 3 그래서 어떻게 날짜를 올바르게 표시 할 수 있습니다. 사용자 Qry를 실행할 때 올바른 결과를 얻었습니까? –

3

내가 제대로 질문을 이해하면, 티는 당신이 원하는 무엇인가 :

SELECT ISNULL(T1.Date,T2.Date) Date, ISNULL(T1.Name,T2.Name) Name, 
     ISNULL(T1.Credit,0) Credit, ISNULL(T2.Debit,0) Debit 
FROM table1 T1 
FULL JOIN table2 T2 
ON T1.Date = T2.Date AND T1.Name = T2.Name 
+0

죄송합니다. 중복 기록이 표시됩니다. –

2
SELECT COALESCE(t1.[DATE], t2.[DATE]) [DATE], 
    COALESCE(t1.[NAME], t2.[NAME]) [NAME], 
    COALESCE(t1.[CREDIT], 0) [CREDIT], 
    COALESCE(t2.[DEBIT], 0) [DEBIT] 
    FROM Table1 t1 
    FULL JOIN Table2 t2 
    ON (t1.[DATE] = t2.[DATE]) AND (t1.[NAME] = t2.[NAME]) 
+1

아, 저를 최소로 잡았습니다. –

+0

죄송합니다 위의 qry 귀하의 회신에 대한 감사 중복 기록 –

관련 문제