मैं एक resultset कि जो तत्व मैं खोजने के लिए अनुसार गतिशील है प्राप्त करना चाहते हैं एसक्यूएल से गतिशील धुरी पाने के लिए।कैसे वीबी को
declare @til DateTime = dateadd(MINUTE, -0, getdate())
declare @fra datetime = DATEADD(MINUTE, -350, @til)
declare @title nvarchar(max) = 'test title'
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX);
create table errors (collection_id bigint, nr smallint, position smallint, stamp datetime)
create table t (collection_id bigint, collection_name nvarchar(max), nr smallint, [status] smallint, stamp datetime)
select @cols = STUFF((SELECT distinct ',' + QUOTENAME(errors.position)
from t t
left join errors on errors.collection_id = t.collection_id and errors.nr = t.nr
where t.Status = 4 and errors.Stamp > @fra and t.collection_name = ''' + @title + ''' and errors.collection_id is not null
FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)') , 1, 1, '');
select @cols
set @query = 'declare @til DateTime = dateadd(MINUTE, -0, getdate())
declare @fra datetime = DATEADD(MINUTE, -350, @til)
;with cte as (select t.collection_name, errors.position, count(errors.Tryksag_Nedtagsfejl_Id) antal
from t
left join errors on errors.collection_id = s.collection_id and errors.nr = t.nr
where t.Status = 4 and errors.Stamp > @fra and and t.collection_name = ''' + @title + '''
group by t.collection_name, errors.position)
SELECT collection_name, ' + @cols + ' from
cte
pivot
(
sum(antal)
for position in (' + @cols + ')
) p '
execute(@query)
अब तक मैं एक प्रश्न मैं पर SSMS चला सकते हैं बना दिया है और उत्पादन मैं इच्छा देता है: यहाँ अपनी क्वेरी का एक नमूना है। जो इस तरह होगा:
कैसे मैं vb.net में इस resultset मेरे पास उपलब्ध कर सकते हैं? जब मैं सिर्फ यह सब एक प्रश्न के रूप में चलाने यह मेरे परिणाम दे नहीं करता है (यह मानते हुए कि resultset पर अमल से नहीं देखा है)
जोड़ा गया वीबी कोड
Dim var_til As Short = 0
Dim var_fra As Short = -60
Dim Linie As String = "Red"
Dim tx = "Test title"
Dim Stt2 = "declare @til DateTime = dateadd(MINUTE, " & var_til & ", getdate()) " _
& "declare @fra datetime = DATEADD(MINUTE, " & var_fra & " , @til) " _
& "DECLARE @cols AS NVARCHAR(MAX), @query AS NVARCHAR(MAX) " _
& "declare @linie as nvarchar(max) = '" & Linie & "' " _
& "declare @title as nvarchar(max) = '" & tx & "' " _
& "select @cols = STUFF((SELECT distinct ',' + QUOTENAME(errors.position) " _
& "from t " _
& "left join errors on errors.collection_id = t.collection_id And errors.nr = t.nr " _
& "where t.Status = 4 And errors.Stamp > @fra And t.collection_name = ''' + @title + ''' and errors.collection_id is not null " _
& "FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)') , 1, 1, '') " _
& " " _
& "set @query = ';with cte as (select t.collection_name, errors.position, count(errors.Tryksag_Nedtagsfejl_Id) antal " _
& "from t " _
& "left join errors on errors.collection_id = s.collection_id And errors.nr = t.nr " _
& "where t.Status = 4 And errors.Stamp > @fra And And t.collection_name = ''' + @title + ''' " _
& "group by t.collection_name, errors.position) " _
& "SELECT collection_name, ' + @cols + ' from " _
& "cte " _
& "pivot " _
& "(" _
& "sum(antal) " _
& "for position in (' + @cols + ') " _
& ") p ' " _
& "execute(@query) "
Dim sqlConnection2 As New SqlConnection("Data Source=CONDOR-TI;Initial Catalog=Condor_db;Integrated Security=True")
Dim cmd2 As New SqlCommand
Dim reader2 As SqlDataReader
cmd2.CommandText = Stt2
cmd2.CommandType = CommandType.Text
cmd2.Connection = sqlConnection2
sqlConnection2.Open()
reader2 = cmd2.ExecuteReader()
While reader2.Read
Console.Write(reader2(0))
End While
Console.WriteLine()
sqlConnection2.Close()
reader2.Close()
क्या की तरह अपने VB कोड दिखता है? – SMM
[mcve] कृपया: टेबल और सामान ... – Blag
आप अपने VB कोड में इस क्वेरी चला सकता हूँ? – FLICKER