2017-10-23 21 views
0

これを行う方法の例をいくつか見てきましたが、私のクエリへの接続を終了できません - 何か助けに感謝します。サブクエリへのSQLの結合

SELECT fe.NAME, fe.[FEE-EARNER], SUM(CONVERT(decimal(10, 2), CONVERT(numeric,t.[TIME-SPENT])/60)) AS Time, SUM(t.[CURR-VALUE]) AS WIP 

FROM PUB1_TRTRANS t 
LEFT JOIN PUB1_FEETR fe on t.[FEE-EARNER]=fe.[FEE-EARNER] 
LEFT JOIN PUB1_DEPARTMENT d on fe.DEPARTMENT=d.[DEPARTMENT-CODE] 
LEFT JOIN PUB1_MATDB m on t.[MT-CODE]=m.[MT-CODE] 

LEFT JOIN 
(
select [FEE-EARNER], sum([time-spent])/60 
FROM dbo.PUB1_TRTRANS 
WHERE ([ACT-CODE] <> N'BILL') AND (UNDONE = 0) AND ([ACT-CODE] <> N'CN') 
and [YEAR]='2018' 
and right([act-code], 1)<>'C' 
and right([act-code], 1)<>'N' 
and left([act-code], 1)<>'X' 
and left([act-code], 3)<>'00N' 
GROUP BY [FEE-EARNER] 
) t2 ON t2.[fee-earner]=t.[fee-earner] 

WHERE t.[bill-no] is null and t.undone=0 and t.billtx=0 AND t.[MT-CODE] IS NOT NULL 
GROUP BY d.[DEPARTMENT-DESCRIPTION], fe.DEPARTMENT ORDER BY WIP DESC# 

内部クエリと外部クエリはどちらもうまくいきますが、[FEE-EARNER]フィールドの2つを結合することはできません。

+0

はデータベースの大文字小文字を区別しますか? [fee-earner] vs [FEE-EARNER]? 「あなたは二人に参加できないのですか?」何が起こるのですか?もしそうなら、あなたはエラーになりますか?あなたは不適切な結果を得ますか?あなたが働くべきだと思う2つのレコードの例を挙げることができますか?両方とも同じデータ型のレコードです。他の人はスペースパディングを持っていますか?あなたはその場合に1つをトリミングする必要がありますか?他の非表示文字が結合に失敗するだけですか? – xQbert

+0

また、エラーメッセージは何ですか? – ViKiNG

+0

私が受け取るエラーメッセージは、メッセージ8155、レベル16、状態2、行21です。 't2'の列2に列名が指定されていません。したがって、クエリはまったく実行されません。 [FEE-EARNER]フィールドは同じデータ型で、クエリでは大文字と小文字が区別されません。 –

答えて

0

エラーをより慎重に読み直した後、内側のクエリでこれをsum([time-spent])/ 60 AS ChargeableTimeに変更する必要がありました。つまり、 ])/ 60計算の名前。

関連する問題