0

2 つの異なるテーブルから 2 つの select ステートメントがあり、共通の結合フィールド datefield の 1 つの日付フィールド名は JobFinishedDate で、MyJobs テーブルからのもので、別の日付フィールド名は createddate で、DailyFinishJobsHistory テーブルからのものです

ここに私の2つの独立したSQLがあります

SQL 1

SELECT  CONVERT(varchar,createddate,101) as [Date],
                                SUM([No of Jobs]) as [No of Jobs],
                                SUM([Turnaround Time]) as [Turnaround Time],
                                SUM([One Day Per]) as [One Day Per],
                                ROUND((SUM([No of Jobs]) * SUM([Turnaround Time])),2) as [TOTAL hours]

from DailyFinishJobsHistory d
WHERE CONVERT(varchar,createddate,112)>='20131015' AND CONVERT(varchar,createddate,112)<='20131021' 
group by createddate

SQL 2

Select 
  convert(varchar,JobFinishedDate,112) as JobFinishedDate
, Count(*) [Number of techs]
From
(
    select 
    convert(varchar,JobFinishedDate,112) JobFinishedDate,Specialist
    from MyJobs
    where convert(varchar,JobFinishedDate,112)>='20131015' 
    and convert(varchar,JobFinishedDate,112) <='20131021'  
    and JobState='FINISHED'
    group by convert(varchar,JobFinishedDate,112) , Specialist
) t1    
Group By 
  JobFinishedDate

今、私は参加しなければなりません。私はこのように試みましたが、この方法で参加する正しい構文が頭に浮かびません。

SELECT  CONVERT(varchar,createddate,101) as [Date],
                                SUM([No of Jobs]) as [No of Jobs],
                                SUM([Turnaround Time]) as [Turnaround Time],
                                SUM([One Day Per]) as [One Day Per],
                                ROUND((SUM([No of Jobs]) * SUM([Turnaround Time])),2) as [TOTAL hours],
(
Select 
  convert(varchar,JobFinishedDate,112) as JobFinishedDate
, Count(*) [Number of techs]
From
(
    select 
    convert(varchar,JobFinishedDate,112) JobFinishedDate,Specialist
    from bbajobs
    where convert(varchar,JobFinishedDate,112)>='20131015' 
    and convert(varchar,JobFinishedDate,112) <='20131021'  
    and JobState='FINISHED'
    group by convert(varchar,JobFinishedDate,112) , Specialist
) t1    
Group By 
  JobFinishedDate
) a
from DailyFinishJobsHistory d
WHERE CONVERT(varchar,createddate,112)>='20131015' AND CONVERT(varchar,createddate,112)<='20131021' 
group by createddate

結合を構築するのを少し手伝ってください。ありがとう

編集

私もこのスクリプトを試しましたが、[Number of techs] が NULL になっています

    SELECT  CONVERT(varchar,createddate,101) as [Date],
            SUM([No of Jobs]) as [No of Jobs],
            SUM([Turnaround Time]) as [Turnaround Time],
            SUM([One Day Per]) as [One Day Per],
            ROUND((SUM([No of Jobs]) * SUM([Turnaround Time])),2) as [TOTAL hours],
(
        SELECT 
        --CONVERT(varchar,JobFinishedDate,112) as JobFinishedDate,
        COUNT(*) [Number of techs]
    From
    (
        SELECT  CONVERT(varchar,JobFinishedDate,112) JobFinishedDate,
                Specialist
        FROM bbajobs
        WHERE d.createddate=JobFinishedDate AND
        JobState = 'FINISHED'  
        GROUP BY CONVERT(varchar,JobFinishedDate,112), Specialist
    ) t1    
    GROUP BY JobFinishedDate
) [Number of techs]


    FROM DailyFinishJobsHistory d
    WHERE CONVERT(varchar,createddate,112) >= '20131015' AND CONVERT(varchar,createddate,112) <= '20131021' 
    GROUP BY createddate
4

1 に答える 1