2016-05-24 6 views
-4
DECLARE @colSelect TABLE(name VARCHAR(100)); 

insert into @colSelect values ('id') 
insert into @colSelect values ('d') 
insert into @colSelect values ('rpn') 
insert into @colSelect values ('criticality') 
insert into @colSelect values ('dateCreated') 

DECLARE @tableName varchar(100), @startDate datetime, @endDate datetime 

SET @tableName = 'tblFmeas' 
SET @startDate = '2016-04-05 00:00:00' 
SET @endDate = '2016-04-05 00:00:00' 


DECLARE @SQL nvarchar(max) 

SET @SQL = 'select ' + (select * from @colSelect) + ' from ' + @tableName + ' where dateCreated between ' + @startDate + ' and' + @endDate; 

EXEC (@SQL) 

Jemand haben einen Vorschlag dafür?Sub-Abfrage bei Select-Anweisung Fehler

Ursache in meiner App, der Benutzer wählen Sie die Spalten, die er im Bericht anzeigen möchten, und ich muss sie für meine Abfrage übergeben.

+2

Sie sollten Ihre Abfrage eingeben, anstatt einen Screenshot –

+0

Alle verschiedenen Möglichkeiten, Zeilen in einer Tabelle in eine durch Komma getrennte Zeichenfolge zu drehen: http://www.sqlmatters.com/Articles/Converting%20row%20values% 20in% 20a% 20tabelle% 20to% 20a% 20single% 20concatenated% 20string.aspx – Jamiec

+0

Sorry @vkp mein Schlechter! –

Antwort

-1

Hier gibt es mehrere Werte zurück, da es keine Join-Bedingung gibt, so dass das Problem ist.

Wahrscheinlich "Select Top 1 Name von @colselect" funktioniert. Aber nicht sicher, was du erreichen willst.

+0

Dies wird keine Liste von Werten in eine einzige Komma getrennte Zeichenfolge konvertieren, was das OP fragt. Auch wenn Sie nicht sicher sind, was das OP zu erreichen versucht, warum werfen Sie eine Antwort da draußen? – EastOfJupiter