DB2数据库用 With语句分隔字符
SELECT T1.REPAIRNO,
T1.UNDERTAKER10,
T3.FULLNAME AS RECEIVERNAME,
T1.WALKDISTANCE,
T1.STATUSCODEDATE10 AS RECEIVETIME,
t8.REPAIRTYPE,
T5.DELIVEREDDATE,
CASE
WHEN T2.REPAIRNO IS NULL THEN '否'
ELSE '是'
END ISINSURANCE,
T2.FIXEDDATE,
T4.FULLNAME AS CLAIMSNNAME,
T2.TotalFee
FROM RT_REPAIR T1
LEFT JOIN RT_INSURANCECLAIMS T2
ON T1.REPAIRNO = T2.REPAIRNO
AND T1.FRAMENO = T2.FRAMENO
LEFT JOIN CM_STAFF T3
ON T1.UNDERTAKER10 = T3.STAFFPKID
LEFT JOIN CM_STAFF T4
ON T2.ClaimsID = T4.STAFFPKID
LEFT JOIN RT_REPAIRPROCESS T5
ON T1.REPAIRNO = T5.REPAIRNO
LEFT JOIN RT_CUSTOMERWISH T6
ON T1.REPAIRNO = T6.REPAIRNO
LEFT JOIN RT_WORKCONTENT T7
ON T6.REPAIRNO = T7.REPAIRNO
AND T6.WISHID = T7.WISHID
LEFT JOIN RM_RepairType t8
ON t7.RepairTypeCode = t8.repairtypecode
WHERE T1.FRAMENO = 'LHGRB186982000004'
AND STATUSCODE = ''
ORDER BY
REPAIRNO DESC
public DataSet GetCustomerSolicitRepairHisByFrameNo(string aFrameNo)
{
StringBuilder sql = new StringBuilder();
sql.Append(" SELECT T1.REPAIRNO, ");
sql.Append(" T1.UNDERTAKER10, ");
sql.Append(" T3.FULLNAME AS RECEIVERNAME, ");
sql.Append(" T1.WALKDISTANCE, ");
sql.Append(" T1.STATUSCODEDATE10 AS RECEIVETIME, ");
sql.Append(" T8.REPAIRTYPE, ");
sql.Append(" T5.DELIVEREDDATE, ");
sql.Append(" CASE ");
sql.Append(" WHEN T2.REPAIRNO IS NULL THEN '否' ");
sql.Append(" ELSE '是' ");
sql.Append(" END ISINSURANCE, ");
sql.Append(" T2.FIXEDDATE, ");
sql.Append(" T4.FULLNAME AS CLAIMSNNAME, ");
sql.Append(" T2.TOTALFEE ");
sql.Append(" FROM RT_REPAIR T1 ");
sql.Append(" LEFT JOIN RT_INSURANCECLAIMS T2 ");
sql.Append(" ON T1.REPAIRNO = T2.REPAIRNO ");
sql.Append(" AND T1.FRAMENO = T2.FRAMENO ");
sql.Append(" LEFT JOIN CM_STAFF T3 ");
sql.Append(" ON T1.UNDERTAKER10 = T3.STAFFPKID ");
sql.Append(" LEFT JOIN CM_STAFF T4 ");
sql.Append(" ON T2.ClaimsID = T4.STAFFPKID ");
sql.Append(" LEFT JOIN RT_REPAIRPROCESS T5 ");
sql.Append(" ON T1.REPAIRNO = T5.REPAIRNO ");
sql.Append(" LEFT JOIN RT_CUSTOMERWISH T6 ");
sql.Append(" ON T1.REPAIRNO = T6.REPAIRNO ");
sql.Append(" LEFT JOIN RT_WORKCONTENT T7 ");
sql.Append(" ON T6.REPAIRNO = T7.REPAIRNO ");
sql.Append(" AND T6.WISHID = T7.WISHID ");
sql.Append(" LEFT JOIN RM_REPAIRTYPE T8 ");
sql.Append(" ON T7.REPAIRTYPECODE = T8.REPAIRTYPECODE ");
sql.Append(" WHERE T1.FRAMENO = '" + aFrameNo + "' ");
sql.Append(" AND STATUSCODE = '99' ");
sql.Append(" ORDER BY ");
sql.Append(" REPAIRNO DESC "); DataSet ds = new DataSet();
FillDataSet(sql.ToString(), ds, new string[] { "Tmp_RepairHis" }); //
string repairNo = string.Empty;
string repairType = string.Empty;
DataSet cloneDS = new DataSet();
cloneDS.Merge(ds);
cloneDS.Tables["Tmp_RepairHis"].Clear();
var cloneRow = cloneDS.Tables["Tmp_RepairHis"].NewRow();
DataRow addRow = null; if (ds.Tables["Tmp_RepairHis"].Rows.Count == )
{
return cloneDS;
}
foreach (DataRow row in ds.Tables["Tmp_RepairHis"].Rows)
{
if (string.IsNullOrEmpty(repairNo))
{
repairNo = row["REPAIRNO"].ToString();
repairType = row["REPAIRTYPE"].ToString();
}
else if (repairNo == row["REPAIRNO"].ToString())
{
if (row["REPAIRTYPE"] != null && row["REPAIRTYPE"] != DBNull.Value)
{
repairType = repairType + "," + row["REPAIRTYPE"].ToString();
}
}
else
{
AddNewCloneRow(addRow, cloneRow, repairNo, repairType, cloneDS); cloneRow = cloneDS.Tables["Tmp_RepairHis"].NewRow();
repairNo = row["REPAIRNO"].ToString();
repairType = row["REPAIRTYPE"].ToString();
} addRow = row;
}
AddNewCloneRow(addRow, cloneRow, repairNo, repairType, cloneDS);
cloneDS.AcceptChanges();
return cloneDS;
}
private static void AddNewCloneRow(DataRow row, DataRow cloneRow, string repairNo, string repairType, DataSet cloneDS)
{
cloneRow["REPAIRNO"] = repairNo;
cloneRow["REPAIRTYPE"] = repairType;
//补充完整其他的数据行
cloneRow["UNDERTAKER10"] = row["UNDERTAKER10"];
cloneRow["RECEIVERNAME"] = row["RECEIVERNAME"];
cloneRow["WALKDISTANCE"] = row["WALKDISTANCE"];
cloneRow["RECEIVETIME"] = row["RECEIVETIME"];
cloneRow["DELIVEREDDATE"] = row["DELIVEREDDATE"];
cloneRow["ISINSURANCE"] = row["ISINSURANCE"];
cloneRow["FIXEDDATE"] = row["FIXEDDATE"];
cloneRow["CLAIMSNNAME"] = row["CLAIMSNNAME"];
cloneRow["TOTALFEE"] = row["TOTALFEE"]; cloneDS.Tables["Tmp_RepairHis"].Rows.Add(cloneRow);
}
DB2数据库用 With语句分隔字符的更多相关文章
- DB2数据库中SQL语句中使用or和and的关键字的时候注意事项
--正确的SQL语句,查询结果:746 ) FROM EHR_BASE EB, EHR_HF_INDICATOR EHI WHERE EB.EHR_ID=EHI.EHR_ID ' ' ' AND EB ...
- DB2 数据库常用操作【持续更新】
好久没写博客了. 上次还是两个月前. 1. 连接数据库 db2 connect to dbName user userName using password 2. 查看表结构 db2 "de ...
- DB2数据库备份还原
恢复及备份NC DB2数据库步 一. 安装DB2数据库 解压db2v9.5ins.rar安装,在写此文档时客户一般用的是9.5: 注意不要将db2安装到系统盘: 二. Windows版本 1.数据库备 ...
- mysql(数据库,sql语句,普通查询)
第1章 数据库 1.1 数据库概述 l 什么是数据库 数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及查询操作. l 什 ...
- R 连接DB2数据库,并制作词图
#写在前面的话:此教程主要是用R连接了DB2数据库,并进行文本分析,制作了词图 #教程为markdown编写 ---title: "网站留言分析"output: html_docu ...
- DB2学习总结(1)——DB2数据库基础入门
DB2的特性 完全Web使能的:可以利用HTTP来发送询问给服务器. 高度可缩放和可靠:高负荷时可利用多处理器和大内存,可以跨服务器地分布数据库和数据负荷:能够以最小的数据丢失快速地恢复,提供多种备份 ...
- db2数据库安装注意几个问题
1.安装数据库的时候,db2用户使用的是系统中的用户.创建完数据库你会发现你电脑多了一个用户(可以在控制面板中查看到) 2.安装完数据库需要创建数据库.打开命令行cmd(注意一定要用管理员身份打开,不 ...
- DB2数据库性能优化介绍
DB2数据库性能优化介绍 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 前段时间,我从CSDN得到了这本书<DB2数据库性能调整和优化(第2版)& ...
- DB2数据库常用基本操作命令
点击开始菜单-->所有程序-->IBM-->DB2-->DB2COPY1-->命令行工具-->命令窗口一.DB2实例操作1.查看DB2数据库的版本及安装目录 E:\ ...
随机推荐
- linux下查找文件命令总结
主要有find,locate,whereis,which等 1. find是最常用也是最强大的查找命令,它可以查找任何类型的文件. find命令的一般格式为:find <指定目录>< ...
- Linux命令之---find
命令简介 find明林用于查找目录下的文件,同时也可以调用其他命令执行相应的操作 命令格式 find pathname -options [-print -exec -ok ...] find [选项 ...
- MySQL之索引(二)
高性能的索引策略 正确地创建和使用索引是实现高性能查询的基础.在MySQL之索引(一)这一章中我们介绍了各种类型的索引及其对应的优缺点.现在我们一起来看看如何真正地发挥这些索引的优势. 独立的列 我们 ...
- 通过APP,网页打开手机客户端QQ
以下内容为转载,原帖子 http://m.blog.csdn.net/blog/qduningning/40587099 在浏览器中可以通过JS代码打开QQ并弹出聊天界面,一般作为客服QQ使用.而在移 ...
- 【Word Break】cpp
题目: Given a string s and a dictionary of words dict, determine if s can be segmented into a space-se ...
- linux 相关知识
在mac 终端中可以直接访问ssh 命令:ssh root@127.0.0.* 批量删除文件: 当前目录下所有 *.html文件,除了index.html [root@whr ...
- BZOJ 3437:小P的牧场(DP+斜率优化)
小P的牧场[题目描述]背景:小P 是个特么喜欢玩MC 的孩纸...小P 在MC 里有n 个牧场,自西向东呈一字形排列(自西向东用1…n 编号),于是他就烦恼了:为了控制这n 个牧场,他需要在某些牧场上 ...
- javascript作用域链理解
执行上下文(Execution context,简称EC) 概念 每当控制器到达ECMAScript可执行代码的时候,就进入了一个执行上下文. javascript中,EC分为三种: ...
- 数学课(math)
数学课(math) 题目描述 wzy又来上数学课了-- 虽然他很菜,但是数学还是懂一丢丢的.老师出了一道题,给定一个包含nn个元素的集合P=1,2,3,-,nP=1,2,3,-,n,求有多少个集合A⊆ ...
- idea工具开发注意事项
pom.xml中不需要有包 <dependency> <groupId>javax</groupId> <artifactId>javaee-api&l ...