SQL批量行转列已经多个字段拼接
来源:互联网 发布:现在能开通淘宝直播吗 编辑:程序博客网 时间:2024/05/21 12:37
第二步:运行一下SQL,就可以得出以下拼接(合并)效果。关键点是where jobId=V_WIP_Balance.jobId 。你想要第一个显示什么,这个ID就要在视图中查出来,不然会数据有误,而且查询速度非常慢。
select
S_Customer.nickName 客户,
S_Job.partNum 生产型号,
isnull(SO_Num.订单数 - CPCK.出库数量,0) 欠数,
BalanceNum=stuff((select ' '+BalanceNum FROM V_WIP_Balance t
where jobId=V_WIP_Balance.jobId FOR xml path('')), 1, 1, '')
FROM V_WIP_Balance
LEFT JOIN S_Job ON S_Job.recId=V_WIP_Balance.jobId
LEFT JOIN S_Customer ON S_Customer.recId = S_Job.customerId
---订单总数
left JOIN (
SELECT
S_ContractItem.jobId,
SUM(isnull(S_ContractItem.qty_Order,0)) 订单数
FROM S_ContractItem
GROUP BY S_ContractItem.jobId
) SO_Num ON SO_Num.jobId = S_Job.recId
--出库数
LEFT JOIN (
SELECT
FPSitem.jobId,
SUM(ISNULL(FGI_InventoryOut.qtyofPCS,0)) 出库数量
FROM
FGI_PackingSlip FPS
LEFT JOIN FGI_PackingSlipItem FPSitem ON FPSitem.packingSlipId = FPS.recId --出货计划明细单
LEFT JOIN FGI_InventoryOut ON FGI_InventoryOut.packingSlipItemId = FPSitem.recId
where FPS.ifassign=1
GROUP BY FPSitem.jobId
) CPCK ON CPCK.jobId = S_Job.recId
--WHERE S_Job.partNum='1F10904C1'
group by V_WIP_Balance.jobId,S_Customer.nickName,S_Job.partNum,SO_Num.订单数,CPCK.出库数量
ORDER BY S_Job.partNum
- SQL批量行转列已经多个字段拼接
- sql 多个字段拼接查询
- oracle 批量更新多个字段sql
- SQL 拼接多个字段的值&一个字段多条记录的拼接
- SQL 拼接多个字段的值&一个字段多条记录的拼接
- SQL 拼接多个字段的值&一个字段多条记录的拼接
- mysql 多个字段拼接
- mysql 多个字段拼接
- mysql 多个字段拼接
- mysql 多个字段拼接
- sqlserver中用游标,拼接sql,批量修改数据库字段类型
- mysql 多个字段拼接 concat
- 多条记录同个字段拼接
- SQL字段拼接显示
- sql批量更新一个字段,全该字段等于一个固定字符串与id拼接值
- 一个字段多个记录拼接和多个字段的拼接
- sql 拼接 格式化日期 拼接原来字段
- 【批量添加】-拼接sql字符串
- 并查集
- Android中EditText的inputType属性的详解
- 读程序
- ListView——适配器
- 数据库操作之商品展示
- SQL批量行转列已经多个字段拼接
- 数字货币钱包数据迁移和导入
- centos 使用pip 安装mysqldb错误
- Qt获取所给文件夹下的所有文件夹列表
- 配置系统环境变量的两种方法
- 编译curl for android
- 回溯法
- VS C++ win32 更改static文本字体和文本背景
- 米国未来10年