2012-05-15 2 views
0

종류가 다른 요청이지만 별도의 TSQL 쿼리를 사용하여 외부 조인을 사용하지 않고도 데이터를 나란히 표시 할 수 있습니까? ,TSQL - 별도의 쿼리를 통해 데이터가 나란히 표시됩니까?

내가 나에게 기록의 수를 줄 것이다 (12 개) 쿼리를 가지고 내가 그들을 좋아하는 것 : 나는

여기

내가 할 찾고 있어요 무슨 ... 나는 완전히이 복잡 해요 궁금 해요 테이블 위에있는 것처럼 오른쪽에서 왼쪽으로 레코드를 보여주기 위해 서로 위에 겹쳐 놓는 대신에 이러한 쿼리에서 그래서

:

대신이 같은의
INTERNET JAN 12  INTERNET FEB 12  ...  INTERNET DEC 12 
12     25       31 

:

INTERNET JAN 12 
12 

INTERNET FEB 12 
25 

... 

INTERNET DEC 12 
31 

은 추가하지 않고이 가능

SELECT COUNT(*) AS 'INTERNET JAN 12' 
    FROM dbo.CONTACT AS AA 
    JOIN dbo.Document AS BB 
    ON AA.ACCOUNTNO = BB.ACCOUNTNO 
WHERE SOURCE IN ('INTERNET', 'EBAY', 'MSN', 'BING', 'GOOGLE', 'YAHOO') 
    AND KEY1 = 'EA' 
    AND MONTH(BB.Date) = 1 
    AND YEAR(BB.Date) = 2012 

SELECT COUNT(*) AS 'INTERNET FEB 12' 
    FROM dbo.CONTACT AS AA 
    JOIN dbo.Document AS BB 
    ON AA.ACCOUNTNO = BB.ACCOUNTNO 
WHERE SOURCE IN ('INTERNET', 'EBAY', 'MSN', 'BING', 'GOOGLE', 'YAHOO') 
    AND KEY1 = 'EA' 
    AND MONTH(BB.Date) = 2 
    AND YEAR(BB.Date) = 2012 

... 

SELECT COUNT(*) AS 'INTERNET DEC 12' 
    FROM dbo.CONTACT AS AA 
    JOIN dbo.Document AS BB 
    ON AA.ACCOUNTNO = BB.ACCOUNTNO 
WHERE SOURCE IN ('INTERNET', 'EBAY', 'MSN', 'BING', 'GOOGLE', 'YAHOO') 
    AND KEY1 = 'EA' 
    AND MONTH(BB.Date) = 12 
    AND YEAR(BB.Date) = 2012 

I는 다음과 같이 설정 결과를 원하는 다른 필드에서 및 외부 조인을하고 있습니까? 최종 결과는 최종 사용자가 자동으로 업데이트하도록 쿼리로 Excel 스프레드 시트에이 것입니다.

+0

이 MSSQL은 무엇입니까? – driis

+3

MSSQL을 가정 할 때 - 여러 쿼리를 함께 사용하지 말고 PIVOT()을 사용하십시오. – HeavenCore

답변

1

임시 테이블을 중간 결과 집합으로 사용하여 SUM 데이터를 생성하는 방법은 어떻습니까? TSQL 당신의 맛은 최근 마이크로 소프트에서 경우 CTE는 그것을 할 것입니다 :

말했다되고 그건
; 
WITH temp (Jan12, Feb12, /* ... */) AS (
SELECT 
    -- Jan 12 
    CASE MONTH(BB.Date) 
     WHEN 1 THEN 1 
     ELSE 0 
    END, 
    -- Feb 12 
    CASE MONTH(BB.Date) 
     WHEN 2 THEN 1 
     ELSE 0 
    END 
    FROM dbo.CONTACT AS AA 
    JOIN dbo.Document AS BB 
    ON AA.ACCOUNTNO = BB.ACCOUNTNO 
WHERE SOURCE IN ('INTERNET', 'EBAY', 'MSN', 'BING', 'GOOGLE', 'YAHOO') 
    AND KEY1 = 'EA' 
    AND YEAR(BB.Date) = 2012 
) 
SELECT SUM(Jan12) AS [Internet Jan 12], SUM(Feb12) AS [Internet Feb 12] -- ... and so on 

, 당신의 경우는 아마 PIVOT에 더 적합한 - 나는 합리적인 샘플을 만들 수 없습니다에 데이터베이스를하지 않고 검색어 입력; 알아낼 수 있어야합니다. from the documentation.

+0

이것은 훌륭하게 작동했습니다. 나는 SQL에 대해 낯선 사람은 아니지만 천천히 TSQL과 SQL Server를 배우고 있습니다. 도움에 감사드립니다! – jdidsQAA

+0

하나의 마지막 질문 ...이 비슷한 다른 쿼리를 조합 할 수 있습니까? UNION ALL을 사용하려고 할 때 계속 오류가 발생합니다. – jdidsQAA

관련 문제