SQL中比较好的For xml 用法实例

本文介绍了一种复杂的SQL查询方法,该方法通过使用多个表连接、子查询及临时表来汇总特定包裹的相关信息,如商品分类、名称及总价格等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

--包裹单号 入库时间 交易号 商品分类 商品名称 实付款
SELECT a.DeliveryCode AS '包裹单号',a.DomesticWarehouseInTime AS '入库时间',a.TradeOrderID AS '交易号',
(SELECT TOP 1 CatalogName FROM [dbo].[TBD_ProductCatalog] WHERE CatalogID=b.ProductCatalogID AND (CatalogName<>NULL OR CatalogName<>'') ) AS '分类名称',
b.ProductName AS '产品名称',b.ProductCatalogName AS '商品名称',b.TotalItemActualPrice AS '总价' INTO #tempTable
FROM dbo.TWX_TransportFromMst a WITH (NOLOCK)
JOIN dbo.TWX_TransportFromDtl b WITH (NOLOCK) ON a.TransportFormMstID=b.TransportFormMstID
WHERE a.DeliveryCode IN
(

)
SELECT 包裹单号,入库时间,交易号,SUM(总价) AS '总价',
(SELECT BB.分类名称+',' FROM #tempTable BB WHERE BB.包裹单号=AA.包裹单号 FOR XML PATH('')) AS '分类名称',
(SELECT BB.商品名称+',' FROM #tempTable BB WHERE BB.包裹单号=AA.包裹单号 FOR XML PATH('')) AS '商品名称',
(SELECT BB.产品名称+',' FROM #tempTable BB WHERE BB.包裹单号=AA.包裹单号 FOR XML PATH('')) AS '产品名称'
FROM #tempTable AA
GROUP BY 包裹单号,入库时间,交易号
DROP TABLE #tempTable

转载于:https://www.cnblogs.com/chengjun/p/9001349.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值