首页 新闻 搜索 专区 学院

如何用一句linq语句写出如下sql语句

0
悬赏园豆:10 [待解决问题]
select top 1 * from 
(
  select p.productID,p.salePrice,pc.NewSalePrice,ISNULL(pc.NewSalePrice,p.salePrice)   EndPrice from product p
  left join ( select * from productColumn where pcID in(select max(pcID) pcID from pr  oductColumn group by productID)) as pc
  on p.productID=pc.productID
) as p order by EndPrice

内容如标题,理论上觉得用linq来写这样的sql语句应该可以实现,现实是还没有实现。

结果应该是这样:

龙行天涯的主页 龙行天涯 | 小虾三级 | 园豆:1819
提问于:2017-06-08 17:16
< >
分享
所有回答(2)
0

可以先把上述做成视图  然后直接用Linq 查该视图.

筱浬 | 园豆:576 (小虾三级) | 2017-06-08 18:01

这样做还是在操作sql

支持(0) 反对(0) 龙行天涯 | 园豆:1819 (小虾三级) | 2017-06-09 10:01

@龙行天涯: linq 本来就支持操作sql 有一个ExecuteSqlCommand方法 你上图也没带条件可以用这种方式吧?

支持(0) 反对(0) 筱浬 | 园豆:576 (小虾三级) | 2017-06-09 10:06

@筱浬: 你理解错我的意思了,我想要的是linq语句,而不是讨论linq支不支持sql的问题。

再者你说的ExecuteSqlCommand方法是要在EF中才有的。

最后就算你用了这个方法,它返回的只是一个影响的数据行数。

支持(0) 反对(0) 龙行天涯 | 园豆:1819 (小虾三级) | 2017-06-09 11:25

@龙行天涯: 原来是这样,可以的. 我试试  

支持(0) 反对(0) 筱浬 | 园豆:576 (小虾三级) | 2017-06-09 11:27

@筱浬: 嗯,你可以去试试

支持(0) 反对(0) 龙行天涯 | 园豆:1819 (小虾三级) | 2017-06-09 11:30
0

嗯?linq实现不了你的需求,你可以拆开了来看,先算group by再计算左连接,linq是可以做到的

webaspx | 园豆:1973 (小虾三级) | 2017-06-09 12:30

感觉就是个未知数

支持(0) 反对(0) 龙行天涯 | 园豆:1819 (小虾三级) | 2017-06-09 12:46

@龙行天涯: 试过吗?不试试怎么知道

支持(0) 反对(0) webaspx | 园豆:1973 (小虾三级) | 2017-06-09 12:54

@webaspx: 拆分当然是可以实现的,我说的未知数指的是不拆分的情况下

支持(0) 反对(0) 龙行天涯 | 园豆:1819 (小虾三级) | 2017-06-09 13:37
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册