笔记238 将别名列作为select字段 2013-4-15
笔记238 将别名列作为select字段 2013-4-15
1 --将别名列作为select字段 2013-4-15 2 --http://social.technet.microsoft.com/Forums/zh-CN/sqlserverzhchs/thread/447ff60f-be88-431d-8cd2-2daded4d4e72 3 use tempdb 4 go 5 6 if object_id('ReceivableTable') is not null 7 drop table ReceivableTable 8 go 9 10 create table ReceivableTable 11 ( 12 sn int identity primary key, 13 addr nvarchar(50), 14 MonthRentR01 int, 15 MonthRentR02 int, 16 MonthRentR03 int 17 ) 18 19 20 21 22 --ALTER TABLE [dbo].[ReceivableTable] ADD ReceivableState INT 23 24 insert into ReceivableTable 25 select 'add1',0,0,0 26 union all 27 select 'add2',100,100,0 28 union all 29 select 'add3',200,0,200 30 union all 31 select 'add4',300,300,300 32 union all 33 select 'add5',0,0,400 34 union all 35 select 'add6',500,0,0 36 37 DECLARE @i INT 38 SET @i = 1 39 WHILE @i < 7 40 BEGIN 41 IF @i % 2 = 0 42 BEGIN 43 UPDATE [dbo].[ReceivableTable] 44 SET [ReceivableState] = 0 45 WHERE [sn] = @i 46 END 47 ELSE 48 BEGIN 49 UPDATE [dbo].[ReceivableTable] 50 SET [ReceivableState] = 1 51 WHERE [sn] = @i 52 END 53 SET @i = @i + 1 54 END 55 56 if object_id('OppositeSide') is not null 57 drop table OppositeSide 58 go 59 60 create table OppositeSide 61 ( 62 name nvarchar(10), 63 addr nvarchar(50) 64 ) 65 66 insert into OppositeSide 67 select N'張三',N'add1' 68 union all 69 select N'李四',N'add2' 70 union all 71 select N'王五',N'add5' 72 73 74 SELECT * FROM [dbo].[OppositeSide] 75 SELECT * FROM ReceivableTable 76 77 78 79 --没有加order by的 80 SELECT Addr , 81 MonthRentR01 , 82 MonthRentR02 , 83 MonthRentR03 84 FROM ReceivableTable 85 UNION ALL 86 SELECT '合计' AS addr , 87 SUM(MonthRentR01) , 88 SUM(MonthRentR02) , 89 SUM(MonthRentR03) 90 FROM ReceivableTable 91 92 93 94 ------------------------------------------------------------------------------ 95 --terry chuang使用with rollup 96 --select isnull(addr,N'合計') addr 97 --,sum(MonthRentR01) MonthRentR01 98 --,isnull((select name 99 -- from OppositeSide b 100 -- where b.addr = a.addr),'') OppositeSide 101 --,sum(MonthRentR02) MonthRentR02 102 --,sum(MonthRentR03) MonthRentR03 103 --from ReceivableTable a 104 --group by addr 105 --with rollup 106 -- 107 --drop table ReceivableTable 108 ---------------------------------------------------------------------------------------- 109 --我自己的 110 if object_id('#tb') is not null 111 drop table #tb 112 113 114 SELECT addr, MonthRentR01, MonthRentR02, MonthRentR03,[ReceivableState] INTO #tb 115 from ReceivableTable 116 ORDER BY ReceivableState desc, [addr] asc 117 GO 118 ------------------------------------------------------------------------------------ 119 INSERT INTO [#tb]([addr],[MonthRentR01],[MonthRentR02],[MonthRentR03]) SELECT '合计' , Sum(MonthRentR01), Sum(MonthRentR02), Sum(MonthRentR03) FROM [dbo].[ReceivableTable] 120 121 ------------------------------------------------------------------------------------ 122 SELECT * FROM [#tb] ORDER BY [addr] ASC 123 124 --------------------------------------------------------------- 125 --乱马客的答案 126 select * 127 from ( 128 SELECT [addr], MonthRentR01 , MonthRentR02 , MonthRentR03, 1 as sort_order 129 from ReceivableTable 130 union all 131 SELECT ' 总数合计 ' , Sum ( MonthRentR01), Sum( MonthRentR02 ), Sum (MonthRentR03 ), 2 as sort_order 132 from ReceivableTable) T1 133 order by T1 .[addr] 134 135 DROP TABLE [#tb]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!