16,020,973 members
Sign in
Sign in
Email
Password
Forgot your password?
Sign in with
home
articles
Browse Topics
>
Latest Articles
Top Articles
Posting/Update Guidelines
Article Help Forum
Submit an article or tip
Import GitHub Project
Import your Blog
quick answers
Q&A
Ask a Question
View Unanswered Questions
View All Questions
View C# questions
View C++ questions
View Visual Basic questions
View Javascript questions
View .NET questions
discussions
forums
CodeProject.AI Server
All Message Boards...
Application Lifecycle
>
Running a Business
Sales / Marketing
Collaboration / Beta Testing
Work Issues
Design and Architecture
Artificial Intelligence
ASP.NET
JavaScript
Internet of Things
C / C++ / MFC
>
ATL / WTL / STL
Managed C++/CLI
C#
Free Tools
Objective-C and Swift
Database
Hardware & Devices
>
System Admin
Hosting and Servers
Java
Linux Programming
Python
.NET (Core and Framework)
Android
iOS
Mobile
WPF
Visual Basic
Web Development
Site Bugs / Suggestions
Spam and Abuse Watch
features
features
Competitions
News
The Insider Newsletter
The Daily Build Newsletter
Newsletter archive
Surveys
CodeProject Stuff
community
lounge
Who's Who
Most Valuable Professionals
The Lounge
The CodeProject Blog
Where I Am: Member Photos
The Insider News
The Weird & The Wonderful
help
?
What is 'CodeProject'?
General FAQ
Ask a Question
Bugs and Suggestions
Article Help Forum
About Us
Search within:
Articles
Quick Answers
Messages
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