Что такое эквивалент LINQ для следующего SQL-запроса? - PullRequest
0 голосов
/ 26 ноября 2011

These are the 3 tables used here

Запрос T-SQL:

select 
   PRODUCT_ID, PRODUCT_NAME.NAME, SUM(SALES_PRICE) as PRODUCT_SALES 
from SALES_PRODUCT_DETAILS
join PRODUCT_NAME on PRODUCT_NAME.ID = SALES_PRODUCT_DETAILS.PRODUCT_ID
where 
    SALES_ID in 
        (select SALES_ID 
         from SALES 
         where SALES_DATE >= '2011-11-13' and SALES_DATE <= '2011-11-16')
group by 
    PRODUCT_ID, PRODUCT_NAME.NAME

Каков эквивалентный запрос LINQ для этого?

1 Ответ

1 голос
/ 26 ноября 2011

Я думаю, что-то подобное сработает.

from s in SALES_PRODUCT_DETAILS
join p in PRODUCT_NAME on s.PRODUCT_ID equals p.ID
where SALES.Any(sales => 
             sales.SALES_DATE >= new DateTime(2011, 11, 13) && 
             sales.SALES_DATE <= new DateTime(2011, 11, 16) &&
             sales.SALES_ID == s.SALES_ID)
group s by new { s.PRODUCT_ID, p.NAME } into g
select new
{
   g.Key.Name,
   g.Key.PRODUCT_ID,
   PRODUCT_SALES = g.Sum(x => x.SALES_PRICE)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...