Click here to Skip to main content
16,020,973 members

Comments by paamar (Top 1 by date)

paamar 29-Mar-13 4:35am View    
Hi all,
Could you please help in converting the below SQL query into LINQ am using C#

need to convert below query in LINq--Drop table #FinalData-- Drop table #sm_DATA

--Drop table #t1Begin Create table #FinalData ( SeriesID1 int,

MetaTagsID1 int , Value1 varchar (50), dtStart datetime, dtEnd datetime,

grp int )Select * INTO #sm_DATA From (

Select Mv.SeriesId, mv.MetaTagsId,mv.Value, mv.PeriodStart, mv.PeriodEnd from

seriesgroup sg inner join (

select SeriesGroupId,GroupNumber, count (*) cnt1 from SeriesGroupFilter

where Exclude = 0

group by SeriesGroupId , GroupNumber ) GN on gn.SeriesGroupId =sg.SeriesGroupId

inner join SeriesGroupFilter sgf on sgf.GroupNumber = gn.GroupNumber

inner join (

Select GroupNumber, count (*) cnt2 From (Select Distinct sgf.GroupNumber, mv.MetaTagsId, mv.Value from SeriesGroupFilter sgf

inner join MetaTagValues mv on ( mv.MetaTagsId = sgf.MetaTagsId and MV.Value = sgf.Value )

group by mv.MetaTagsId, mv.Value,sgf.GroupNumber ) mvcnt group by GroupNumber

) recmv on ( recmv.GroupNumber = sgf.GroupNumber and recmv.cnt2 = gn.cnt1)

inner join MetaTagValues MV on ( MV.MetaTagsId = sgf.MetaTagsId and MV.Value = sgf.Value )

inner join Series s on s.SeriesId = mv.SeriesIdwhere sg.SeriesGroupId =55 ) a

/* Select * from #sm_DATA*//* Drop table #sm_DATA*/

Declare @MetaTagsId int, @SeriesID int, @cnt numeric Set @cnt = 1;

Declare SM cursor for SELECT smd.SeriesId, smd.MetaTagsId from #sm_DATA smd

group by smd.SeriesId, smd.MetaTagsId, smd.value having COUNT (*) > 1

OPEN SM FETCH NEXT FROM sm INTO @SeriesID, @MetaTagsId

WHILE @@FETCH_STATUS = 0 BEGIN

Select * into #t1 from #sm_DATA where SeriesId = @SeriesID and MetaTagsId = @MetaTagsId

Declare @SeriesID1 int, @MetaTagsID1 int , @Value1 varchar (50),

@dtStart datetime, @dtEnd datetime Declare SM2 cursor for select * from #t1

Open SM2

FETCH NEXT FROM sm2 INTO @SeriesID1, @MetaTagsID1, @Value1, @dtStart, @dtEnd

WHILE @@FETCH_STATUS = 0 BEGIN /* set @cnt = 1;*/

Insert into #FinalData values (@SeriesID1, @MetaTagsID1, @Value1, @dtStart, @dtEnd, @cnt)

Insert into #FinalData Select *,@cnt from #sm_DATA where SeriesId = @SeriesID and MetaTagsId not in (@MetaTagsId)

set @cnt = @cnt + 1;

FETCH NEXT FROM SM2 into @SeriesID1, @MetaTagsID1, @Value1, @dtStart, @dtEnd

END CLOSE SM2;DEALLOCATE SM2;FETCH NEXT FROM sm INTO @SeriesID, @MetaTagsId

END CLOSE SM;DEALLOCATE SM;Select * from #FinalData

Select seriesID1, MAX (dtStart), MIN (dtend) From #FinalData group by seriesID1,grp

End