2013-04-16 1 views
0

다음 예제와 같이 "WHERE"절에서 두 개의 다른 열에 같은 필드를 표시하는 두 개의 SQL 쿼리를 연결하려고합니다.concat sql query> where 절에 따라 두 개의 서로 다른 열에서 동일한 열 표시

쿼리 N ° 1 :

SELECT COUNT([ID]) AS SOCIETE_1, 
     CAST([Créé le] AS date) AS DateCreated 
FROM [MFilesCloudReport].[dbo].[Document] 
WHERE [Société_ID] = 1 
GROUP BY CAST([Créé le] AS date) 
ORDER BY CAST([Créé le] AS date) 

->결과 N ° 1 :

SOCIETE_1 DateCreated 
----------------------------------- 
142  | 2013-01-17 
148  | 2013-01-21 
88  | 2013-01-23 
188  | 2013-01-25 
187  | 2013-01-29 
124  | 2013-01-31 
,691,363 (210)

쿼리 N ° 2 :

SELECT COUNT([ID]) AS SOCIETE_2, 
    CAST([Créé le] AS date) AS DateCreated 
FROM [MFilesCloudReport].[dbo].[Document] 
WHERE [Société_ID] = 2 
GROUP BY CAST([Créé le] AS date) 
ORDER BY CAST([Créé le] AS date) 

->결과 N ° 2 :

SOCIETE_2 DateCreated 
----------------------------------- 
18  | 2013-01-17 
73  | 2013-01-21 
75  | 2013-01-23 
1  | 2013-01-24 
48  | 2013-01-25 
80  | 2013-01-29 
43  | 2013-01-31 

예상되는 결과는 다음이 하나

SOCIETE_1  SOCIETE_2  TOTAL  DateCreated 
---------------------------------------------------------------------------- 
142   | 18  | 160  | 2013-01-17 
148   | 73  | 221  | 2013-01-21 
88   | 75  | 163  | 2013-01-23 
0   | 1  | 1  | 2013-01-24 
188   | 48  | 236  | 2013-01-25 
187   | 80  | 267  | 2013-01-29 
124   | 43  | 167  | 2013-01-31 

감사합니다 미리 도움을 청하고 즐거운 하루를 보내십시오.

+0

*** *** RDBMS는 무엇입니까? SQL Server? MySQL은? 신탁? 포스트그레스? Informix? Interbase? 다른 것?????? –

답변

1
SELECT COUNT(case when [Société_ID] = 1 then [ID] end) AS SOCIETE_1, 
     COUNT(case when [Société_ID] = 2 then [ID] end) AS SOCIETE_2, 
     COUNT(*) AS TOTAL, 
     CAST([Créé le] AS date) AS DateCreated 
FROM [MFilesCloudReport].[dbo].[Document] 
GROUP BY CAST([Créé le] AS date) 
ORDER BY CAST([Créé le] AS date) 
+0

@JW 예, 동의합니다. 그러나 'TOTAL' 열에 표시해야 할 내용에 따라 다릅니다. – paul

+0

완벽하게 작동합니다. 큰 감사, 지금은 많은 쿼리 에이 메서드를 적용 할 수 있습니다 :) 당신의 도움에 감사하고 지역 사회에 감사드립니다 :) – locas13

관련 문제