2013-02-17 4 views
0

다른 데이터를 쿼리하는 데 필요한 테이블이 두 개 있습니다. 공통 링크는 datetime 열입니다. 나는SQL에서 두 테이블의 쿼리와 데이터 병합

이 마지막 쿼리가 저를 주어야한다 ... 쿼리를 병합하지만 다양한 오류를 얻고 유지하기 위해 노력했다 : date, Peak Power each Day, KWHOpenHrs, KWHClosedTotal

어떤 도움에 감사드립니다.

SELECT 
    CAST(t.HD as DATE), MAX(t.Power_Apparent_Total) as 'Peak Power Each Day' 
FROM [Peak kVA] t 
GROUP BY CAST(t.HD AS DATE) 

Daily Consumption

Date | KWH Open | KWH ClosedandOccupied | KWH ClosedandnotOccupied 

검색어 :

2 개 개의 테이블은

Peak KVA 테이블

Date | Power_Apparent_Total 

검색어 이하 :

select date, 
max(value) kWhOpenHrs, 
sum(case when col in ('zkWhClsedAndOccupied', 'zkWhClsedAndNotOccupied') then value end) kWhClsedTotal 
from 
(
    select date, 'zkWhOpenHrs' as col, kWhOpenHours as value 
    from dbo.tblDailyPowerConsumption 
    union all 
    select date, 'zkWhClsedAndNotOccupied' as col, kWhClosedAndNotOccupied as value 
    from dbo.tblDailyPowerConsumption 
    union all 
    select date, 'zkWhClsedAndOccupied' as col, kWhClosedAndOccupied as value 
    from dbo.tblDailyPowerConsumption 
) src 
WHERE MONTH(date) = '12' 
group by date 
+1

당신이 사용하고있는 SQL의 제품을 나타내는 태그를 추가 할 수 날짜뿐만 아니라 시간뿐만 아니라 포함? –

+0

하나의 식에서 두 쿼리를 조인 할 수 있어야합니다. 이미 시도한 경우 실행중인 전체 코드와받은 오류 메시지를 게시하십시오. – BellevueBob

+0

안녕하세요, 저는 SQL2008을 사용하고 있습니다. 기본으로 돌아가려고했지만 '데이터'가없는 2 개의 날짜 열에 2 개의 테이블을 조인하자마자 'JOIN'을 사용할 수 없습니다. 여기 내 쿼리가 있습니다. . SELECT [kVA의 피크] .HD [kVA의 피크] .Power_Apparent_Total , tblDailyPowerConsumption.Date , tblDailyPowerConsumption.kWhOpenHours 는 을 tblDailyPowerConsumption.kWhClosedAndOccupied DBO FROM 을 tblDailyPowerConsumption.kWhClosedAndNotOccupied. kVA의 피크] INNER가 DBO 가입. tblDailyPowerConsumption ON [피크 kVA] .HD = tblDailyPowerConsumption.Date WHERE 월 (tblDailyPowerConsumption.Date) = '12 ' –

답변

0

시작하려면이 요청을 실행하십시오. 날짜의 당신의 유형은 (가능하면 버전 포함)

SELECT [Peak kVA].HD AS [date], [Peak kVA].Power_Apparent_Total, 
     tblDailyPowerConsumption.kWhOpenHours, 
     tblDailyPowerConsumption.kWhClosedAndOccupied, 
     tblDailyPowerConsumption.kWhClosedAndNotOccupied 
FROM dbo.[Peak kVA] LEFT JOIN dbo.tblDailyPowerConsumption 
         ON CAST([Peak kVA].HD AS date) = CAST(tblDailyPowerConsumption.Date AS date) 
         AND MONTH(tblDailyPowerConsumption.Date) = '12' 
0
select date, [Peak Power each Day], KWHOpenHrs, KWHClosedTotal 
from 
    (SELECT 
     CAST(t.HD as DATE), MAX(t.Power_Apparent_Total) as 'Peak Power Each Day' 
    FROM [Peak kVA] t 
    GROUP BY CAST(t.HD AS DATE)) peak 
inner join 
    (select date, 
    max(value) kWhOpenHrs, 
    sum(case when col in 
     ('zkWhClsedAndOccupied', 'zkWhClsedAndNotOccupied') 
     then value end) kWhClsedTotal 
    from 
    (
    select date, 'zkWhOpenHrs' as col, kWhOpenHours as value 
    from dbo.tblDailyPowerConsumption 
    union all 
    select date, 'zkWhClsedAndNotOccupied' as col, kWhClosedAndNotOccupied as value 
    from dbo.tblDailyPowerConsumption 
    union all 
    select date, 'zkWhClsedAndOccupied' as col, kWhClosedAndOccupied as value 
    from dbo.tblDailyPowerConsumption 
    ) src 
    WHERE MONTH(date) = '12' 
    group by date) daily 
on peak.date = daily.date