2016-05-10 5 views
0

SQLの2つの異なるテーブルから2つの行の値をフェッチして連結できません。 添付の写真の私の質問をご覧ください。 次のクエリはSQLの2つの異なるテーブルの2つの行の値を取得して連結します

SELECT RequestNo+'::'+convert(varchar(200),(select count(RID)+1 
              from BDProjectProposal 
              Group by RID)) AS Number 
FROM  BDRequestorInfo 
WHERE  (RID = @RID) 

は、どのような方法があります私に正確なデータを提供しないのですか?

Photo

答えて

0

あなたは、サブセレクトで句(RID = @RIDを持つが)戻って一つの値だけが存在することを保証するために、WHERE私は追加

SELECT RequestNo+'::'+convert(varchar(200),isnull((select count(RID)+1 
              from BDProjectProposal 
              Group by RID 
              having RID = @RID),1) AS Number 
FROM  BDRequestorInfo 
WHERE  (RID = @RID) 

下に試すことができます。

あなた副選択はおそらくSQLエラー

を引き起こすデータセットを返し、私はNULLを指定した@RID

+0

ありがとうございます。 count(RID)= 0の場合、値は返されません。 –

+0

ISNULL()を修正して追加すると、指定された@RIDの行が次のように存在しないようにすることができます。 select isnull((select count(RID)+1) from BDProjectProposal グループby RID RID = @RID)、1) – Eralper

+0

ありがとうございます。 –

0

ための行でなければならない戻り(1、...)クエリの上方に変更し、ISNULLを添加しました相関サブクエリを使用してください:

SELECT (RequestNo + '::' + 
     convert(varchar(200), 
       (select count(RID) + 1 
       from BDProjectProposal pp 
       where pp.RID = ri.RID) 
       ) 
       ) 
     ) AS Number 
FROM BDRequestorInfo ri 
WHERE ri.RID = @RID; 
+0

働いてくれてありがとう。 –

関連する問題