私は以下のコードを持っていますが、私は報告の理由からCMMSシステムデータベースに問い合わせています。 Group by
を削除すると、実行されますが、Where
ステートメントによって返されたすべての実行がカウントされます。私はそれがGroup By
ステートメントを使用していないためだと推測しています。すべてのボディは素晴らしいことだ正しい方向に私を指すことができる場合グループBy Statementエラー
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
:私は私にそれを追加すると、次のエラーを取得します。
USE [Maint5k]
GO
/****** Object: StoredProcedure [dbo].[PMs_Past_Due_Count] Script Date: 3/21/2017 11:08:52 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Hicks,Clayton>
-- Create date: <2017,03,06>
-- Description: <Pulls open Maintennace Reactive Work Orders for the current week>
-- =============================================
ALTER PROCEDURE [dbo].[PMs_Past_Due_Count]
as
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT
woJob.JobID
,woJob.FullDescription
,woJob.DueDate
,syJobType.Code AS [syJobType Code]
,syJobStatus.Code AS [syJobStatus Code]
,emLabour.LabourFirstName AS [First Name]
,emLabour.LabourSurName AS [Last Name]
,wojob.LabourID
,(Select count(wojob.LabourID) as 'Count_LabourID' from woJob
INNER JOIN syJobType
ON woJob.JobTypeID = syJobType.JobTypeID
INNER JOIN syJobStatus
ON woJob.JobStatusID = syJobStatus.JobStatusID
INNER JOIN [Maint5k].[dbo].[emLabour]
ON woJob.LabourID = emLabour.LabourID
Where syJobType.Code = 'PM' and
DueDate < GETDATE() and
(syjobstatus.Code = 'Open' or
syJobStatus.Code = 'SCHEDULED')
group by wojob.LabourID) as CountLabourIDs
FROM
woJob
INNER JOIN syJobType
ON woJob.JobTypeID = syJobType.JobTypeID
INNER JOIN syJobStatus
ON woJob.JobStatusID = syJobStatus.JobStatusID
INNER JOIN [Maint5k].[dbo].[emLabour]
ON woJob.LabourID = emLabour.LabourID
Where syJobType.Code = 'PM' and
DueDate < GETDATE() and
(syjobstatus.Code = 'Open' or
syJobStatus.Code = 'SCHEDULED')
'
wojobの下に複数のグループがあり、それらを数えると、基本的にグループ全体の数が全体の数になりますので、エラーは正しいです... – maSTAShuFu
サブクエリの目標は何ですか? – maSTAShuFu
これは*グループカウント*を取得する複雑な方法ですが、代わりに 'count(*)over(partition by wojob.LabourID)'を試してみてください。 – dnoeth