2012-03-26 18 views
0

Wie schreibe ich die Abfrage mit linq?Wie schreibe ich die Abfrage mit linq?

SELECT 
    (SELECT SUM([quantity] * [price_usd]) 
     FROM [vi].[dbo].[SALES] 
     WHERE [type_id] =1 and [date_id] in(200701,200702,200703,200704,200705,200706,200707,200708,200709,200710,200711,200712)) as y2007, 
    (SELECT SUM([quantity] * [price_usd]) 
     FROM [vi].[dbo].[SALES] 
     WHERE [type_id] =1 and [date_id] in(200801,200802,200803,200804,200805,200806,200807,200808,200809,200810,200811,200812)) as y2008, 
     (SELECT SUM([quantity] * [price_usd]) 
     FROM [vi].[dbo].[SALES] 
     WHERE [type_id] =1 and [date_id] in(200901,200902,200903,200904,200905,200906,200907,200908,200909,200910,200911,200912)) as y2009 

Antwort

1

Was ist mit dieser Art von Abfrage:

From s in Sales 
where s.type_id == 1 
group s by s.date_id.ToString().Substring(0,4) into g 
select New { Year = g.Key, Sum = g.Sum(i => i.quantity * i.price_usd) } 

Ich habe keine Gelegenheit, es auf dem iPad, um zu versuchen, aber die Idee ist klar, und es sollte funktionieren.

+0

Ein sehr großes Dankeschön. [0] \t {Jahr = "2011", Summe = 1192767121,5} \t [1] \t {Jahr = "2009", Summe = 876.670.834,1617} [2] \t {Jahr = "2007", Summe = 620079972,1093} [ 3] \t {year = "2012", Summe = 10.859.440,52} [4] \t {Jahr = "2008", Summe = 970709774,8901} [5] \t {Jahr = "2010", Summe = 1143741135,55} – Sergey

+0

Sie sollten akzeptieren Die Antwort, wenn es Ihnen geholfen hat, Ihr Problem zu lösen. So funktioniert SO und wie Sie anderen Benutzern wirklich für ihre Antworten danken können. – MarcinJuraszek

+0

group s by s.date_id.ToString(). Teilstring (0, 4) - vielleicht wird es eine lange Zeit sein – Sergey

Verwandte Themen