2016-05-10 6 views
0

Ich kann zwei Zeilenwerte aus zwei verschiedenen Tabellen in SQL nicht abrufen und verketten. Bitte lesen Sie meine Anfrage im beigefügten Foto. folgende Abfrage ist die Bereitstellung mich nicht die genauen DatenAbrufen und Verketten von zwei Zeilenwerten aus zwei verschiedenen Tabellen in SQL

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

Gibt es eine Möglichkeit?

Photo

Antwort

0

können Sie versuchen, unter

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) 

ich nur hinzugefügt WHERE-Klausel (RID = @RID mit) in Subselect um sicherzustellen, dass die Rückkehr nur ein Wert sein wird.

Ihre subselect gibt einen Datensatz möglicherweise eine SQL-Fehler verursacht

ich obige Abfrage geändert und hinzugefügt ISNULL (...., 1) für NULL ohne Zeilen zurückgibt für eine gegebene @RID

+0

Vielen Dank. Es gibt keinen Wert zurück, wenn count (RID) = 0 ist. –

+0

Wir können ISNULL() ändern und hinzufügen, um zu verhindern, dass für @RID wie folgt keine Zeilen existieren. wählen Sie isnull ((wählen Sie Anzahl (RID) +1 von BDProjectProposal Gruppe von RID mit RID = @ RID), 1) – Eralper

+0

Es funktioniert jetzt, danke. –

0

Sie sollten Verwenden Sie eine korrelierte Unterabfrage:

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

Es funktioniert, danke. –

Verwandte Themen