new-SQL语句怎么写成存储过程

问题描述

SQL语句怎么写成存储过程

StringBuilder strSql = new StringBuilder();
StringBuilder strsql2005 = new StringBuilder();
StringBuilder sqlcount = new StringBuilder();
StringBuilder sqlwhere = new StringBuilder();
sqlcount.Append("select count(1) ");
sqlwhere.Append(" SELECT C.XMMC AS XBMC,A.SFZH,A.LXDH,H.LXRDH,H.YLJGBH, ");//需要查询的列
if (strLX == "4" || strLX == "5")
{
sqlwhere.Append(" H.HXDABH,H.JTCYBH,H.DCZ,H.DCRQ,H.CJRQ,H.CJRBH,H.CJR,A.MZBH, YLJGMC,A.GRDABH,A.XM,A.CSNYR,A.JMJKDAH,A.DAZT,H.XXDZ,A.CZLX,Z.XMMC+'-'+W.XMMC AS CZMC,H.SFHG ,X.QZSJ,AZ.JBMC,H.JKJDZT ");//,T.ZZDAH ");//需要查询的列 X.QZSJ,AZ.JBMC

}
else
{
sqlwhere.Append(" H.HXDABH,H.JTCYBH,H.DCZ,H.DCRQ,H.CJRQ,H.CJRBH,H.CJR,A.MZBH, YLJGMC,A.GRDABH,A.XM,A.CSNYR,A.JMJKDAH,A.DAZT,H.XXDZ,A.CZLX,Z.XMMC+'-'+W.XMMC AS CZMC,H.SFHG,A.CSNYR as QZSJ,A.XM as JBMC,H.JKJDZT ");//,T.ZZDAH ");
}
sqlwhere.Append(" FROM JMDA_HXDA_JBQK H with(nolock) JOIN JMDA_JTCY A with(nolock) ON A.JTCYBH = H.JTCYBH ");
sqlwhere.Append(" INNER JOIN SKJBXX_SJZDMX C with(nolock) ON C.FLBH = 'S101-01' AND A.XB = C.XMBH ");
sqlwhere.Append(" INNER JOIN SKJBXX_YLJG JG with(nolock) ON JG.YLJGBH=H.YLJGBH ");//社康基本信息_医疗机构表
sqlwhere.Append(" LEFT JOIN SKJBXX_SJZDMX Z with(nolock) ON Z.FLBH = 'JTCY_CZLX' AND A.CZLX =Z.XMBH ");
sqlwhere.Append("LEFT JOIN SKJBXX_SJZDMX W with(nolock) ON W.FLBH='JTCY_CZHK' AND A.CZHK=W.XMBH");
if (strLX == "3")
{
sqlwhere.Append(" LEFT join FNWCQBJ_JBQK F with(nolock) ON A.JTCYBH = F.JMJKDAH And F.DQZT='0' ");
}
else if (strLX == "4" || strLX == "5")
{
sqlwhere.Append(" LEFT JOIN MBGL_JBQKB M with(nolock) ON A.JTCYBH = M.JTCYBH AND M.DAZT='1' ");
sqlwhere.Append(" LEFT JOIN MBGL_JWS X with(nolock) ON M.MBDAH=X.MBDAH ");
sqlwhere.Append("LEFT JOIN SKJBXX_JBXXB AS AZ with(nolock) ON X.JBBH=AZ.JBBH ");
}
else if (strLX == "6")
{
sqlwhere.Append(" LEFT JOIN JSB_JBQK J with(nolock) ON A.JTCYBH = J.JTCYBH AND J.DAZT='1' ");
}
sqlwhere.Append(" WHERE 1=1 ");//档案状态
if (SFZH != "")
{
sqlwhere.Append(" AND A.SFZH = @SFZH ");
}
else
{
if (strJMJKDAH != "")//当个人档案编号不为空时,只根据这个来查询。
{
sqlwhere.Append(" AND A.GRDABH=@GRDABH ");
}
else
{

                if (lag == "0")
                {
                    sqlwhere.Append(" AND A.YLJGID = @YLJGBH ");
                    if (YHBH != "")
                    {
                        sqlwhere.Append(" AND H.CJRBH = @CJRBH ");
                    }
                }
                else if (lag == "1")
                {
                    sqlwhere.Append(" AND A.YLJGID LIKE @YLJGBH ");
                }
                else if (lag == "2")
                {

                }
                if (strXM != "")
                {
                    sqlwhere.Append(" AND A.XM like @XM ");
                }
                if (BeginDate != Convert.ToDateTime("9999-12-31") && EndDate != Convert.ToDateTime("9999-12-31"))
                {
                    sqlwhere.Append(" AND H.DCRQ >= @FCJRQ AND H.DCRQ <= @TCJRQ");
                }
                if (CSRQ != Convert.ToDateTime("9999-12-31"))
                {
                    sqlwhere.Append(" AND A.CSNYR >= @CSNYR ");
                }
                if (CSRQE != Convert.ToDateTime("9999-12-31"))
                {
                    sqlwhere.Append(" AND A.CSNYR <= @CSNYRE ");
                }
                if (strXb != "")
                {
                    sqlwhere.Append(" AND A.XB = @XB ");
                }

                if (strHJDZ != null && strHJDZ != "")
                {
                    sqlwhere.Append(" AND H.XXDZ like @HJDZ ");
                }
                if (strXZQ != "")
                {
                    sqlwhere.Append("  AND A.XZQBH like @XZQ");
                }

                if (strGZDW != "")
                {
                    sqlwhere.Append(" and H.GZDW = @strGZDW");
                }
                if (CZLX != "0" && CZLX != "")
                {
                    sqlwhere.Append(" and A.CZLX = @CZLX");
                }

                if (CZHK != "0" && CZHK!="")
                {
                    if (CZHK == "1")
                        sqlwhere.Append(" and A.CZHK='1'");
                    else
                        sqlwhere.Append(" and A.CZHK='0'");
                }

            }
            sqlwhere.Append(" AND A.DAZT = 1  ");
            switch (strLX)
            {
                case "1":
                    sqlwhere.Append(" and datediff(Year,A.CSNYR ,getdate())>=0 and datediff(Year,A.CSNYR ,getdate())<=6 ");   //0-6岁儿童档案查询 条件
                    break;
                case "2":
                    sqlwhere.Append(" and datediff(Year,A.CSNYR ,getdate())>=65 ");//65岁以上老年人档案查询     条件
                    break;
                case "3":
                    sqlwhere.Append(" and  F.BJSCBH != '' ");//孕产妇查询条件
                    break;
                case "4":
                    sqlwhere.Append(" and X.JBBH='1' ");  //慢病高血压 查询条件
                    break;
                case "5":
                    sqlwhere.Append(" and X.JBBH='2' ");//慢病糖尿病查询条件
                    break;
                case "6":
                    sqlwhere.Append(" and J.JSBDABH!='' ");//重性精神病查询条件
                    break;
                default:
                    break;
            }
        }
        sqlwhere.Append(" AND A.DAZT = 1  ");
        strSql.Append(sqlwhere.ToString());
        if (strPX == "1")
        {
            strSql.Append("  ORDER BY H.CJRQ DESC,A.XM asc ");
        }
        else if (strPX == "2")
        {
            strSql.Append("  ORDER BY A.GRDABH DESC ");
        }
        else if (strPX == "3")
        {
            strSql.Append("  ORDER BY csnyr asc ");
        }
        SqlParameter[] parameters = {
                new SqlParameter("@GRDABH", SqlDbType.VarChar,20), //居民健康档案号
                new SqlParameter("@YLJGBH", SqlDbType.VarChar,12), //医疗机构号
                new SqlParameter("@XM", SqlDbType.VarChar,40),//姓名
                new SqlParameter("@CSNYR", SqlDbType.DateTime),//出生日期
                new SqlParameter("@CSNYRE", SqlDbType.DateTime),//出生日期搜索结束时间
                new SqlParameter("@FCJRQ", SqlDbType.DateTime),//起始日期
                new SqlParameter("@TCJRQ", SqlDbType.DateTime),//结束日期
                new SqlParameter("@CJRBH", SqlDbType.VarChar,20),//用户编号
                new SqlParameter("@SFZH", SqlDbType.VarChar, 20), //身份证号
                new SqlParameter("@HJDZ", SqlDbType.VarChar,100),//详细地址
                new SqlParameter("@XZQ",SqlDbType.VarChar,10),//行政区
                new SqlParameter("@strGZDW",SqlDbType.VarChar,60), //工作单位
                new SqlParameter("@XB",SqlDbType.VarChar,10),//性别
                new SqlParameter("@CZLX",SqlDbType.Char,1), //户籍类型
                new SqlParameter("@PageIndex",SqlDbType.Int,4),
                new SqlParameter("@PageSize",SqlDbType.Int ,4)
        };
        parameters[0].Value = strJMJKDAH; //居民健康档案号
        if (lag == "1")
        {
            parameters[1].Value = strYLJGBH + "%";//医疗机构号
        }
        else
        {
            parameters[1].Value = strYLJGBH;//医疗机构号
        }
        parameters[2].Value = strXM + "%"; //姓名
        parameters[3].Value = CSRQ;//出生日期
        parameters[4].Value = CSRQE;//出生日期搜索结束时间
        parameters[5].Value = BeginDate; //起始日期
        parameters[6].Value = EndDate;//结束日期
        parameters[7].Value = YHBH;//用户编号
        parameters[8].Value = SFZH;//身份证号码
        parameters[9].Value = "%" + strHJDZ + "%";//详细地址
        parameters[10].Value = strXZQ + "%";
        parameters[11].Value = strGZDW; //工作单位
        parameters[12].Value = strXb;
        parameters[13].Value = CZLX; //户籍类型
        parameters[14].Value = PageIndex;
        parameters[15].Value = PageSize;
        strsql2005.Append(sqlwhere.ToString());
        sqlcount.Append(sqlwhere.ToString());
        object intcount = DbHelperSQL.GetSingle(sqlcount.ToString(), parameters);
        if (intcount == null)
            RecordCount = 0;
        else
            RecordCount = int.Parse(intcount.ToString());
        return DbHelperSQL.Query(strSql.ToString(), PageSize, PageIndex, parameters);

解决方案

create or replace procedure name(参数)
as
.....

时间: 2024-08-30 05:10:03

new-SQL语句怎么写成存储过程的相关文章

原生的sql语句怎么写成HQL语句SELECT * FROM tmms_bookout WHERE c_id IN (SELECT cs_id FROM tm

问题描述 原生的SQL语句:SELECT*FROMtmms_bookoutWHEREc_idIN(SELECTcs_idFROMtmms_courseWHEREtc_id="+id+")怎么写成HQL语句呀?大神帮帮忙呀!谢谢! 解决方案 解决方案二:tmms_bookout和tmms_course有没有配置映射关系?解决方案三:哇kao这种问题都出来问找度娘吧解决方案四:楼主你提供的这信息太少了类与类的关系呢?不会写hql你打开Hibernate文档的15章这里基本上有丰富的例子和用

数据-急!请教这个sql语句怎么写:两个条件查询,其中一个满足,另一个条件就不要加了

问题描述 急!请教这个sql语句怎么写:两个条件查询,其中一个满足,另一个条件就不要加了 条件2始终存在,条件1不一定始终有.条件1.条件2的数据可能同时存在,但是 当有条件1的数据存在的时候,显示条件1的数据: 如果没有,则显示条件2的数据的数据. 解决方案 select * from table where (条件1 and not exist (select * from table where 条件2)) or (条件2 and not exist (select * from tabl

这个sql语句怎么写啊?找出每个同学最高分,最低分及对应的科目

问题描述 这个sql语句怎么写啊?找出每个同学最高分,最低分及对应的科目 select name,course as mincourse,score as minscore from userscore ore in(select min(score) from userscore group by name) group by name; select name,course as mincourse,score as minscore from userscore ore in(select

sql server-用jsp删除数据库数据时数据库无返回。但是如果SQL语句直接写出变量,返回删除成功了。

问题描述 用jsp删除数据库数据时数据库无返回.但是如果SQL语句直接写出变量,返回删除成功了. <% response.setContentType(""text/html""); request.setCharacterEncoding(""GBK""); response.setCharacterEncoding(""GBK""); String name = new Str

字段-sql 语句怎么写判断 ?

问题描述 sql 语句怎么写判断 ? d.D_DirectionID dirid, 用了内外连接查询 D_DirectionID 是一个表名 dirid是一个字段 求判断如果dirid= 43 就执行 条件1 如果等于44就执行条件2 解决方案 case when then when then end 解决方案二: 用存储过程,用变量来保存dirid,ranhif判断 解决方案三: 最简单的就是if语句判断了! 解决方案四: 把字段查出来 if(dirid==43){ ....... }else

sql asp net-这种情况的sql语句怎么写

问题描述 这种情况的sql语句怎么写 其中tk表中的fzjid与zj表中的id一致 选择"2 信息技术的发展和应用"能显示该知识点下的练习题,现在需要实现选择"第一章 信息及信息的获取"时显示所有该章节的所有练习题, 语句如下 sql = "select * from ttk where ftkzj=@zjid order by id desc"; SqlParameter[] p = new SqlParameter[] { new SqlPa

discuz-Discuz 3.2 查询的sql语句怎么写?

问题描述 Discuz 3.2 查询的sql语句怎么写? 我在数据表里面加了一个sid,现在要以sid为条件去查询数据,这样写是错误的,,求正确写法!! 解决方案 string sql;sql="select 字段名xx,xx,xx from 数据表名"sql+="where xxx(主键名)="+articleid.ToString();

sql语句-请教一个SQL语句如何写?

问题描述 请教一个SQL语句如何写? 求助大侠:表A中有字段a,b,c,d,e,f,但并不是所有字段都一定有值,其中有值字段原值为'201xxxx'现在要将有值字段由'201xxxx'替换为'2001xxxx',无值字段保留为空,请问SQL语句如何写?(其中'201xxxx'中的xxxx代表数字,比如20101或201010101,位数不定,也可能只为201)请赐教. 解决方案 update [A] set [a] = left(a2)+'0'+right(alen(a)-2) [b] = le

菜鸟 求解答-orcale中between and的sql语句怎么写啊!求大神指导

问题描述 orcale中between and的sql语句怎么写啊!求大神指导 就是我想查询数据库中name列里随便一个范围内的数据 该怎么写呢, 解决方案 你的name是什么类型的? 字符串的话只能用枚举了. name in ('a','b','c') 如果是说数字类型或者日期时间类型,可以用 between and 或者 > < 当然也可以枚举 举例如下: 字段类型: name varchar2(30), age int(3) select * from tableName where n