求SQL:怎样得到带%的数

HuoLarry 2014-02-28 03:07:10
表A(拨打电话次数):
CUST_ID,a
------------------------------------
101,100
102,60

表B(拨打电话成功次数):
CUST_ID,a
------------------------------------
101,50
102,35

结果表C,应该是这样的结果:

CUST_ID,C
------------------------------------
101,50.0%
102,58.3%
...全文
54 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
HuoLarry 2014-02-28
  • 打赏
  • 举报
回复
引用 1 楼 fredrickhu 的回复:
----------------------------------------------------------------
-- Author  :fredrickhu(小F,向高手学习)
-- Date    :2014-02-28 15:09:58
-- Verstion:
--      Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86) 
--	Jul  9 2008 14:43:34 
--	Copyright (c) 1988-2008 Microsoft Corporation
--	Enterprise Edition on Windows NT 6.1 <X86> (Build 7601: Service Pack 1)
--
----------------------------------------------------------------
--> 测试数据:[a]
if object_id('[a]') is not null drop table [a]
go 
create table [a]([CUST_ID] int,[a] int)
insert [a]
select 101,100 union all
select 102,60
--> 测试数据:[b]
if object_id('[b]') is not null drop table [b]
go 
create table [b]([CUST_ID] int,[a] int)
insert [b]
select 101,50 union all
select 102,35
--------------开始查询--------------------------
SELECT 
  a.CUST_ID,
  LTRIM(CAST(b.a*100.0/a.a AS dec(18,1)))+'%' AS c
FROM 
  a INNER JOIN b ON a.CUST_ID=b.CUST_ID
----------------结果----------------------------
/* CUST_ID     c
----------- ------------------------------------------
101         50.0%
102         58.3%

(2 行受影响)
*/
高手啊,非常符合我的要求。
直面人生 2014-02-28
  • 打赏
  • 举报
回复
引用 1 楼 fredrickhu 的回复:
----------------------------------------------------------------
-- Author  :fredrickhu(小F,向高手学习)
-- Date    :2014-02-28 15:09:58
-- Verstion:
--      Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86) 
--	Jul  9 2008 14:43:34 
--	Copyright (c) 1988-2008 Microsoft Corporation
--	Enterprise Edition on Windows NT 6.1 <X86> (Build 7601: Service Pack 1)
--
----------------------------------------------------------------
--> 测试数据:[a]
if object_id('[a]') is not null drop table [a]
go 
create table [a]([CUST_ID] int,[a] int)
insert [a]
select 101,100 union all
select 102,60
--> 测试数据:[b]
if object_id('[b]') is not null drop table [b]
go 
create table [b]([CUST_ID] int,[a] int)
insert [b]
select 101,50 union all
select 102,35
--------------开始查询--------------------------
SELECT 
  a.CUST_ID,
  LTRIM(CAST(b.a*100.0/a.a AS dec(18,1)))+'%' AS c
FROM 
  a INNER JOIN b ON a.CUST_ID=b.CUST_ID
----------------结果----------------------------
/* CUST_ID     c
----------- ------------------------------------------
101         50.0%
102         58.3%

(2 行受影响)
*/
学习了
直面人生 2014-02-28
  • 打赏
  • 举报
回复
select 101 CUST_ID , cast(50.0 as varchar(100))+'%' C
这样行吗? 拼接
--小F-- 2014-02-28
  • 打赏
  • 举报
回复
----------------------------------------------------------------
-- Author  :fredrickhu(小F,向高手学习)
-- Date    :2014-02-28 15:09:58
-- Verstion:
--      Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86) 
--	Jul  9 2008 14:43:34 
--	Copyright (c) 1988-2008 Microsoft Corporation
--	Enterprise Edition on Windows NT 6.1 <X86> (Build 7601: Service Pack 1)
--
----------------------------------------------------------------
--> 测试数据:[a]
if object_id('[a]') is not null drop table [a]
go 
create table [a]([CUST_ID] int,[a] int)
insert [a]
select 101,100 union all
select 102,60
--> 测试数据:[b]
if object_id('[b]') is not null drop table [b]
go 
create table [b]([CUST_ID] int,[a] int)
insert [b]
select 101,50 union all
select 102,35
--------------开始查询--------------------------
SELECT 
  a.CUST_ID,
  LTRIM(CAST(b.a*100.0/a.a AS dec(18,1)))+'%' AS c
FROM 
  a INNER JOIN b ON a.CUST_ID=b.CUST_ID
----------------结果----------------------------
/* CUST_ID     c
----------- ------------------------------------------
101         50.0%
102         58.3%

(2 行受影响)
*/

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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