求这个怎么查询,就是当客户的下一个值是NULL,则认为后面的物料和单价是这个客户的,得到右边的表

搭边的日月 2019-02-19 04:15:27
...全文
194 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
搭边的日月 2019-02-20
  • 打赏
  • 举报
回复
多谢版主,版主真牛!
吉普赛的歌 2019-02-20
  • 打赏
  • 举报
回复
引用 3 楼 qq_43381622 的回复:
多谢版主,版主真牛!
不客气, 没事就结贴吧
吉普赛的歌 2019-02-19
  • 打赏
  • 举报
回复
USE tempdb
GO
IF OBJECT_ID('t') IS NOT NULL DROP TABLE t
GO
CREATE TABLE t(
    客户 NVARCHAR(10),
    物料名称 NVARCHAR(10),
    成交额 INT
)
GO
SET NOCOUNT ON
INSERT INTO t VALUES ('a','wl',200)
INSERT INTO t VALUES (NULL,'wl1',100)
INSERT INTO t VALUES ('b','wl3',100)
INSERT INTO t VALUES (NULL,'wl1',300)
INSERT INTO t VALUES ('a','wl5',10)

;WITH cte AS (
	SELECT ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS rid,* FROM t
),cte2 AS (
	SELECT 
		CASE WHEN 客户 IS NULL THEN (SELECT TOP 1 客户 FROM cte AS b WHERE b.rid<a.rid AND b.客户 IS NOT NULL ORDER BY rid DESC) 
		ELSE 客户 END
		AS 客户
		,物料名称
		,成交额 
	FROM cte AS a
)
SELECT * FROM cte2
ORDER BY 客户

搭边的日月 2019-02-19
  • 打赏
  • 举报
回复
如图

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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