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