'USE [SAPL_BK_NEW] GO /******オブジェクト:StoredProcedure [dbo]。[MachineCTE]スクリプト日付:11/12このサブクエリは、 GO --exec MachineCTE 'AQUARELL'サブクエリが1より大きい値を返しました。 =、!=、<, <= , >、> =
ALTER PROC [DBO]。[MachineCTE] ( ON GO のSET QUOTED_IDENTIFIER ON/2016年10時32分48秒******/ のSET ANSI_NULLS @companyName varchar(100) ) AS BEGIN
CREATE TABLE #MachineCTE ( ID int型、 mcdespのVARCHAR(MAX)、 mccost int型、 mcopstsのVARCHAR(30)、 状態はvarchar(100)、 mcfactのVARCHAR(50)、 mccompのVARCHAR(60) ); )mcdespのASC BY ORDER(OVER Machine_CTE(ID、mcdesp、mccost、mcopsts、国家、mcfact、mccomp) AS(ROW_NUMBERを(SELECT)WITH
、機械など mac.mcdesp、として(mac.mccost)を数えますコストは、条件として(mcopsts)、[状態]、mcfact、マシンのMacからmccomp としてmcopstsを数える
どこRtrim文字(mac.mccomp)= mcdesp、mcopsts、mcfact、mccomp BYにcompanyName GROUP)
INSERT INTO @ #MachineCTE MachineCTEからID、mcdesp、mccost、mcopsts、State、mcfact、mccompを選択
select * from(SELECT CTE.mcde (0)AS [GOOD]、 ISNULL(機械翻訳の品質は翻訳者による翻訳ほど十分ではありません)機械翻訳の免責英語を並べて表示機械翻訳機械翻訳版の免責を確認する英語を並べて表示英語と日本語を並べて表示する機械翻訳機械翻訳版の免責を確認する(IDM)とMCTE.mcdesp = CTE.mcdesp)、0)AS [IDLE]、 ISNULL((mCOPSTs FROM #MachineCTE MCTE WHERE State = 'UR'およびMCTE.mcdesp) = CTE.mcdesp)、0)[UR] mcdesp BY #MachineCTE CTE群から )T1の和集合として からすべて選択 *は( CTE.mcdesp Machines_Nameとして、 '0' Total_Machinesとして、 '0' ASを選択[GOOD]、 [0] AS [IDLE]、 '0' AS [UR] FROM #MachineCTE CTEここで、mcfなどの行為= 'EXTRA' GROUP BY mcdesp、mccomp、mcopsts、mcfact)T2
ドロップテーブル#MachineCTE
END」
この問題を解決するために助けてください
SELECT CTE.mcdesp (0)AS [GOOD]、 ISNULL((選択されているmcopstsから#MachineCTE MCTE WHERE State = 'GOOD'およびMCTE.mcdesp = CTE.mcdesp) #MachineCTEからmcopsts MCTE WHERE State = 'IDLE'およびMCTE.mcdesp = CTE。 mcdesp)、0)AS [IDLE]、 ISNULL((mcopstsから#MachineCTE MCTEを選択してください。状態は 'UR'、MCTE.mcdesp = CTEです。mcdesp)、0)[UR] AS #MachineCTE CTEグループからmcdesp
BY上記の文は、サブクエリが複数の値を返し問題
です。サブクエリは、次の時にこれが許可されていない=、!=、<、< =、>、> =またはサブクエリを式
サブクエリー( 'SELECT mcopsts FROM #MachineCTE MCTE WHERE State = 'GOOD'およびMCTE.mcdesp = CTE.mcdesp')のいずれかが複数の値を返しています。最も簡単な修正はサブクエリで 'SELECT TOP 1'を行うことです。 –
EBrownがすでに述べたものを拡張するために、select句にサブクエリがある場合、そのサブクエリは多くても** 1行**を返すことができます。それ以外の場合は、あなたが得るエラーが発生します。サブクエリ(サブクエリ)が多くても1つのローで返されることを確認するか、返された複数のローに対応するためにジョインでクエリを書き換えます。 –
[この質問](http://stackoverflow.com/q/2653188/243373)を読んで、そこに掲載されている回答を調べてください。そこに掲載されている回答でこの問題を解決することができます。 –