SQL转LinQ

问题描述

selecta.code,b.name,(selecttop1isnull(desc,'')fromtb_cwherecode=a.codeandYEAR(keepdate)=YEAR(@date)andMONTH(keepdate)='1')asN'1月描述'fromtb_aaleftjointb_bbona.id=b.id

主要是字段里是SQL语句,这linq弄了好久没弄出来,在线求解

解决方案

解决方案二:
你这段sql语句能查询吗?isnull(desc,'')这个里面的保留字括号也没有,可以查询?你最好重开贴,加点分,你自己都搞了几天了,怎么才40分啊。
解决方案三:
fromaindb.tb_ajoinbindb.tb_bona.idequalsb.idintoj1frombinj1.DefaultIfEmpty()joincindb.tb_cona.codeequalsc.codeintoj2fromcinj2.DefaultIfEmpty()selectnew{a.code,name=b==null?"":b.name,desc=c==null?"":c.desc}
解决方案四:
少了where部分了将db.tb_c改成db.tb_c.Where(i=>SqlFunctions.DatePart("year",i.keepdate)==2015&&SqlFunctions.DatePart("month",i.keepdate)==1)
解决方案五:
当然这个where加载最下面,join完之后也可以
解决方案六:
selecta.code,b.name,(selecttop1isnull(desc,'')fromtb_cwherecode=a.codeandYEAR(keepdate)=YEAR(@date)andMONTH(keepdate)='1')asN'1月描述',(selecttop1isnull(desc,'')fromtb_cwherecode=a.codeandYEAR(keepdate)=YEAR(@date)andMONTH(keepdate)='2')asN'2月描述',(selecttop1isnull(desc,'')fromtb_cwherecode=a.codeandYEAR(keepdate)=YEAR(@date)andMONTH(keepdate)='3')asN'3月描述'fromtb_aaleftjointb_bbona.id=b.id

这样能拼出来么
解决方案七:
你按上面的一样写啊,不过如果你这个是要行列转换的话,那么还是将所有数据都读取出来后,在程序里面进行group吧
解决方案八:
加分之后怎么不回一下帖子,嘎嘎inty=2015;int[]mArr={1,2,3};//月范围varquery=tb_a.GroupJoin(tb_b,a=>a.id,b=>b.id,(a,b)=>b.Select(p=>new{a.code,p.name,月描述=tb_c.Select(s=>s.Year==y&&mArr.Contains(s.Month)).ToDictionary(s=>s.Month,s=>s.desc)})).SelectMany(p=>p);foreach(varsinquery){Console.WriteLine(s.code+""+s.name+"1月描述"+(s.月描述.ContainsKey(1)?s.月描述[1]:""));}
解决方案九:
s.Year跟s.Month都改成s.keepdate.Year跟s.keepdate.Month你再调试调试这样查,月描述按字典出来,随你查几个月
解决方案十:
月描述查询的那一段,跟你那个还少了个wherecode=a.code的条件,我全部重新写一下吧inty=2015;int[]mArr={1,2,3};//月范围varquery=tb_a.GroupJoin(tb_b,a=>a.id,b=>b.id,(a,b)=>b.Select(p=>new{a.code,p.name,月描述=tb_c.Select(s=>s.code==a.code&&s.keepdate.Year==y&&mArr.Contains(s.keepdate.Month)).ToDictionary(s=>s.keepdate.Month,s=>s.desc)})).SelectMany(p=>p);
解决方案十一:
我用的是Nhibernate,对LinQ有些不一定支持。没办法用CreateSQLQuery,拼SQL语句了。
解决方案十二:
你建立视图,随后查询就变得简单了。

时间: 2024-07-28 21:34:40

SQL转LinQ的相关文章

Entity SQL与LINQ TO Entity的本质区别

由此可以看出其最终都转移成Command Tree 然后再转换成对应数据库的T-SQL语句,本质差别不大 ,但是有时执行特殊查询语句的时候还是有点不一样的,因为Entity SQL的T-SQL语句是我们自己定义的,而 LINQ to Entity最后转换的T-SQL语句是由Entity引擎转换的,有时我们用SQL Server Profiler检测执行的 SQL语句的时候LINQ to Entity执行的SQL往往让我们不容易理解,所以在需要对某些查询/修改/更新执行操作 的时候如果发现执行效率

从sql走向linq的问题

A left (outer) join B on A.bid=B.id 上面这句话叫做左连接,原因是left(左)join(加入,连入)被译为左连接,所以,这是关于语法中关键字的翻译,而非连接原理,造成不能以为是从第一张表的左边连接.相反,它是从A表的右边开始连接的.原因很简单,比如一个普通的查询语句:select t.id TID from table1 t.后面的那个t是对table1的标记,再看TID它也是对t.id的标记,它们的功能是什么我们暂且不说,起码我们知道了sql的语法习惯是将附

走进Linq-Linq to SQL源代码赏析,通过Linq to SQL看Linq

LINQ,语言集成查询,就是把一些查询操作集成到语言中(貌似是废话),比 如查询关系数据库,而且提供一种一致的操作方式,不管最终的数据存储在哪里 ?内存中,远程数据库还是一Xml格式文件存储,不仅仅如此,你还可以用你丰 富的想象力扩充自己的查询.Linq to SQL无疑把Linq的能量发挥的淋漓尽致, 我们就以Linq to SQL的体系结构来学习一下Linq的整体框架. 在上两章 里面我们通过源代码探讨了关于DataContext的初始化和Table<TEntity> 对象的获取,以及Pr

SQL To LinQ 你知道么?

    学习linQ的时候,你应该用到过LinQ to SQL 的工具---LinQPad,刚开始用,不太熟悉,尤其是涉及到多表查询,不会写LinQ语句怎么办?    这不是问题,下面先来介绍另一个工具 SQL to LinQ,SQL已经学了很长时间了,做系统的时候经常用到,对于SQL语句应该不陌生吧.    打开SQL Server 2008 ,新建查询,我想把三张表中的信息一一对应起来,并且只要我想要的字段的信息,SQL语句:  SELECT [t2].[VirtualExamRoomId]

SQL 转化LINQ 或 lambda表达式

问题描述 SQL转化LINQ或lambda表达式SELECTb.*FROM(SELECTappli_no,max(revision_no)ASrevision_noFROMTBAARS_COMMITTEE_APPLICATIONGROUPBYappli_no)aINNERJOINTBAARS_COMMITTEE_APPLICATIONbON(a.appli_no=b.appli_noANDa.revision_no=b.revision_no) 解决方案 解决方案二:varquery=fromx

sql转Linq的工具

本文转载:http://www.cnblogs.com/huangxincheng/archive/2011/05/12/2044990.html 介绍一个小工具 Linqer   这些天写Linq挺烦人的,就上网搜搜可有什么好的sql转Linq的工具,咦,马上就看上了Linqer. 哈哈,介绍一下使用方法吧: 官方下载网站:http://sqltolinq.com/download. 第一步:运行这个神马文件. 第二步:指定一个路径给它.他会生成一个Linqer.exe可运行的文件. 第三步:

Sql To Linq转换问题

问题描述 我有一个Sql语句,有两种写法都是对的如图这两种写法的结果是一样的同样转成Linq也有两种写法而转成Linq以后Temp0有数据,而Temp是没有数据的.不知道这两种Linq方法有什么不同,求大神解答一下谢谢! 解决方案 解决方案二:sqltolinq?没听说过这种字眼.问题就在于查询方式.temp使用的from,where后边有跟了一大堆的条件.很明显条件都是"并且"的关系,能保证这个里的条件都成立?如果有一个不成立就没有数据.temp0就不一样,没from一次就join一

SQL、LINQ和Lambda表达式

首先说说这三者完全是三种不同的东西,SQL是结构化查询语言(Structured Query Language)简称,这大家再熟悉不过了,下面主要介绍LINQ和Lambda表达式的基本概念以及同一查询这三者的不同实现. 简单介绍 LINQ(Language Integrate Query)是语言集成查询他在对象和数据之间建立一种对应的关系,可以使用访问内存对象的方式查询数据集合.LINQ查询是C#中的一种语言构造.因此开发人员可以再C#代码汇总嵌套类似于SQL语句的查询表达式,从而实现数据查询的

关于LinQ to SQL 和 LinQ to Entity的问题

问题描述 我用以上方法建立一个实体类DBML或者EDMX,如果因为需求变动,我不得不增加一个字段,或者去掉一个字段,我该怎么办啊?请高手们帮吗解答啊 解决方案 解决方案二:用ling开发的后果.解决方案三:晕有没有解决方法啊????解决方案四:edmx提供了update功能,会自动同步数据表结构dbml需要重新删除改动的表,重新映射一下