2017-06-09 173 views
-2
SELECT X.CORE.Jobs.CreationDate AS 'Date Created', X.CORE.JobControlSheets.PrintJobName AS 'Batch Id', X.CORE.Jobs.JobId AS 'Job Name', 
X.CORE.JobToJob.JobToJobId AS 'Sub- Job Name', X.CORE.JobControlSheets.DespatchMethod AS 'Postal Class', X.CORE.JobControlSheets.EnvelopeCode AS 'Envelope Code', 
Y.[PrintStatus],Y.[PrintDate],Y.[DespatchDate], Y.[EnclosedDate],Y.[DocsetCount], Y.[FileName] 
From 
(SELECT  CORE.Jobs.CreationDate AS 'Date Created', CORE.JobControlSheets.PrintJobName AS 'Batch Id', CORE.Jobs.JobId AS 'Job Name', 
         CORE.JobToJob.JobToJobId AS 'Sub- Job Name', CORE.JobControlSheets.DespatchMethod AS 'Postal Class', 
         CORE.JobControlSheets.EnvelopeCode AS 'Envelope Code', CORE.JobControlSheets.PrintJobName 
FROM   CORE.Jobs INNER JOIN 
         CORE.JobControlSheets ON CORE.Jobs.JobId = CORE.JobControlSheets.JobId LEFT OUTER JOIN 
         CORE.JobToJob ON CORE.Jobs.JobId = CORE.JobToJob.SourceJobId) AS X 
         INNER JOIN 
(SELECT [PrintStatus],[PrintDate],[DespatchDate],[EnclosedDate],[DocsetCount], [FileName] 
FROM 
(SELECT distinct Jc.JobID, 
case when EXists (SELECT distinct jobid FROM [MI_ProdMI].dbo.JOB_Tbl_000_Outstanding JO WHERE JO.jobid=Jc.JobID) 
then 'Inprogress' else 'Complte' end as [PrintStatus],Jb.[FileName] as [FileName] 
FROM [MI_ProdMI].dbo.JOB_Tbl_002_Completions Jc 
INNER JOIN [MI_ProdMI].dbo.JOB_Tbl_001_Jobs Jb on Jb.ID=Jc.JobID) as A 
left JOIN 
(SELECT JobID,[Timestamp] as [PrintDate] FROM [MI_ProdMI].dbo.JOB_Tbl_002_Completions jc WHERE 
[Service] = 'PRINT' and JobStatus = 'Printed') as B on A.JobID=B.JobID 
left JOIN 
(
SELECT jobid,sum(Packs) as [DocsetCount],max(DespTimestamp) as [DespatchDate] FROM [MI_ProdMI].dbo.JOB_Tbl_002_Completions GROUP BY JobID) 
as C on B.JobID=C.JobID 
LEFT JOIN 
(SELECT JobID,Timestamp as [EnclosedDate] FROM [MI_ProdMI].dbo.JOB_Tbl_002_Completions WHERE JobStatus = 'Processed') 
    D on C.JobID=D.JobID) AS Y on Y.FileName=X.FileName 
+0

' 。 'X.CORE.something.whatever'は無意味です。 –

+0

この改正後、無効な列名エラーが発生します。 – Deepak

答えて

0

最初のサブクエリで列エイリアスで間違えた。テーブルを結合するときにテーブルエイリアスを使用すると、読みやすく、使いやすくなります。

最初のサブクエリで列の別名を使用して列名を取得し、後で外部SELECTにエイリアス名を追加できます。

は、次のクエリを試すことができます:

あなたが ``そのSELECT`で `F`はフィールド名です利用可能XF`を持っているので、X 'は、X'`に選択エイリアスとして
SELECT X.CreationDate AS 'Date Created', X.PrintJobName AS 'Batch Id', X.JobId AS 'Job Name', X.JobToJobId AS 'Sub- Job Name', 
     X.DespatchMethod AS 'Postal Class', X.EnvelopeCode AS 'Envelope Code', 
     Y.[PrintStatus], Y.[PrintDate], Y.[DespatchDate], Y.[EnclosedDate], Y.[DocsetCount], Y.[FileName] 
FROM (
    SELECT [CJ].CreationDate, [CJC].PrintJobName, [CJ].JobId, [CJJ].JobToJobId, [CJC].DespatchMethod, [CJC].EnvelopeCode 
    FROM CORE.Jobs [CJ] 
    INNER JOIN CORE.JobControlSheets [CJC] ON [CJ].JobId = [CJC].JobId 
    LEFT OUTER JOIN CORE.JobToJob [CJJ] ON [CJ].JobId = [CJJ].SourceJobId 
    ) AS X 
INNER JOIN (
    SELECT [PrintStatus], [PrintDate], [DespatchDate], [EnclosedDate], [DocsetCount], [FileName] 
    FROM (
     SELECT DISTINCT Jc.JobID, CASE 
       WHEN EXISTS (
         SELECT DISTINCT jobid 
         FROM [MI_ProdMI].dbo.JOB_Tbl_000_Outstanding JO 
         WHERE JO.jobid = Jc.JobID 
         ) 
        THEN 'Inprogress' 
       ELSE 'Complte' 
       END AS [PrintStatus], Jb.[FileName] AS [FileName] 
     FROM [MI_ProdMI].dbo.JOB_Tbl_002_Completions Jc 
     INNER JOIN [MI_ProdMI].dbo.JOB_Tbl_001_Jobs Jb ON Jb.ID = Jc.JobID 
     ) AS A 
    LEFT JOIN (
     SELECT JobID, [Timestamp] AS [PrintDate] 
     FROM [MI_ProdMI].dbo.JOB_Tbl_002_Completions jc 
     WHERE [Service] = 'PRINT' 
      AND JobStatus = 'Printed' 
     ) AS B ON A.JobID = B.JobID 
    LEFT JOIN (
     SELECT jobid, sum(Packs) AS [DocsetCount], max(DespTimestamp) AS [DespatchDate] 
     FROM [MI_ProdMI].dbo.JOB_Tbl_002_Completions 
     GROUP BY JobID 
     ) AS C ON B.JobID = C.JobID 
    LEFT JOIN (
     SELECT JobID, TIMESTAMP AS [EnclosedDate] 
     FROM [MI_ProdMI].dbo.JOB_Tbl_002_Completions 
     WHERE JobStatus = 'Processed' 
     ) D ON C.JobID = D.JobID 
    ) AS Y ON Y.FileName = X.FileName 
関連する問題