根据条件行转列,各位帮忙看看!

水向东流时光怎么偷 2015-08-06 03:17:23

/*
数据格式
ClientNO OrderDrugstoreName OrderCon OrderTel OrderCell OrderAdd Qty OrdQty
HYF20150430000466 普宁市创美电器有限公司 王城 0663-2237558 0663-2237558 池尾镇科技工业园计生办后面创美电器 50 50
HYF20150505001094 普宁市创美电器有限公司 江坚 0663-2254140 0663-2254140 池尾镇科技工业园计生办后面创美电器 21 21
SHF20150513000803 普宁市创美电器有限公司 王城 0663-2237558 0663-2237558 池尾镇科技工业园计生办后面创美电器 22 3

*/
根据相同OrderDrugstoreName,OrderCon,OrderTel,OrderCell,OrderAdd,汇总Qty,OrdQty,ClientNO行转列并汇总到一起
得出以下结果

/*ClientNO OrderDrugstoreName OrderCon OrderTel OrderCell OrderAdd Qty OrdQty SClientNO
HYF20150430000466 普宁市创美电器有限公司 王城 0663-2237558 0663-2237558 池尾镇科技工业园计生办后面创美电器 72 53 HYF20150430000466-SHF20150513000803
HYF20150505001094 普宁市创美电器有限公司 江坚 0663-2254140 0663-2254140 池尾镇科技工业园计生办后面创美电器 21 21 HYF20150505001094
*/

...全文
103 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
gw6328 2015-08-06
  • 打赏
  • 举报
回复
1楼就是啊。group by 求结果。你说的是最后一列吗?
  • 打赏
  • 举报
回复
引用 2 楼 jinfengyiye 的回复:
你那结果不用转啊。直接出来啊。
SELECT a.ClientNO,a.OrderDrugstoreName,OrderCon,OrderTel,OrderCell,a.OrderAdd,SUM(a.OrderQty) AS Qty,SUM(a.OrderOrdQty) AS OrdQty,SUM(a.OrderSpare2) AS Premium
FROM dbo.TMS_Order a,dbo.TMS_OrderRowList b,dbo.TMS_OrderRow c,dbo.WMS_Base_Client h,dbo.TMS_Base_Carrier u
WHERE a.OrderNO=b.OrderNO AND b.OrderRowNO=c.OrderRowNO AND  
c.CarrierGuid=u.CarrierGuid AND a.ClientGuid=h.ClientGuid AND u.CarrierName='速运有'
GROUP BY a.ClientNO,a.OrderDrugstoreName,OrderCon,OrderTel,OrderCell,a.OrderAdd
ORDER BY a.ClientNO,a.OrderDrugstoreName,OrderCon,OrderTel,OrderCell,a.OrderAdd
查询代码
  • 打赏
  • 举报
回复
引用 2 楼 jinfengyiye 的回复:
你那结果不用转啊。直接出来啊。
怎么不用转怎么出来? 求方法?
gw6328 2015-08-06
  • 打赏
  • 举报
回复
你那结果不用转啊。直接出来啊。
Tiger_Zhao 2015-08-06
  • 打赏
  • 举报
回复
WITH 
/* 测试数据
table1(ClientNO,OrderDrugstoreName,OrderCon,OrderTel,OrderCell,OrderAdd,Qty,OrdQty)AS(
SELECT 'HYF20150430000466','普宁市创美电器有限公司','王城','0663-2237558','0663-2237558','池尾镇科技工业园计生办后面创美电器',50,50 UNION ALL
SELECT 'HYF20150505001094','普宁市创美电器有限公司','江坚','0663-2254140','0663-2254140','池尾镇科技工业园计生办后面创美电器',21,21 UNION ALL
SELECT 'SHF20150513000803','普宁市创美电器有限公司','王城','0663-2237558','0663-2237558','池尾镇科技工业园计生办后面创美电器',22,3
), */
a AS (
SELECT MIN(ClientNO) ClientNO,
OrderDrugstoreName,OrderCon,OrderTel,OrderCell,OrderAdd,
SUM(Qty) Qty,
SUM(OrdQty) OrdQty
FROM table1
GROUP BY OrderDrugstoreName,OrderCon,OrderTel,OrderCell,OrderAdd
)
SELECT a.*,
Stuff((SELECT '-'+ClientNO
FROM table1 AS b
WHERE b.OrderDrugstoreName = a.OrderDrugstoreName
AND b.OrderCon = a.OrderCon
AND b.OrderTel = a.OrderTel
AND b.OrderCell = a.OrderCell
AND b.OrderAdd = a.OrderAdd
FOR XML PATH('')
),
1,1,'') SClientNO
FROM a

ClientNO          OrderDrugstoreName     OrderCon OrderTel     OrderCell    OrderAdd                                   Qty      OrdQty SClientNO
----------------- ---------------------- -------- ------------ ------------ ---------------------------------- ----------- ----------- -----------------------------------
HYF20150430000466 普宁市创美电器有限公司 王城 0663-2237558 0663-2237558 池尾镇科技工业园计生办后面创美电器 72 53 HYF20150430000466-SHF20150513000803
HYF20150505001094 普宁市创美电器有限公司 江坚 0663-2254140 0663-2254140 池尾镇科技工业园计生办后面创美电器 21 21 HYF20150505001094

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧