当前位置: 代码迷 >> Sql Server >> 相同列只封存一个数据以及进行统计
  详细解决方案

相同列只封存一个数据以及进行统计

热度:39   发布时间:2016-04-24 10:32:55.0
相同列只保留一个数据以及进行统计。
oper_id 收银员
0174 刘
0174 刘
0494 王英
0910 何
0910 何


查询出来的结果:

oper_id 收银员
0174 刘
0494 王英
0910 何


------解决方案--------------------
----------------------------------------------------------------
-- Author  :DBA_HuangZJ(发粪涂墙)
-- Date    :2014-06-16 15:52:53
-- Version:
--      Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) 
-- Apr  2 2010 15:48:46 
-- Copyright (c) Microsoft Corporation
-- Enterprise Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) (Hypervisor)
--
----------------------------------------------------------------
--> 测试数据[huang]
if object_id('[huang]') is not null drop table [huang]
go 
create table [huang]([收银员] nvarchar(2),[sheet_qty] int,[sale_amt] int,[AA] int,[结算方式] nvarchar(6),[现金] int)
insert [huang]
select N'刘',392,123,16,'DSY',10 union all
select N'刘',392,123,16,'RMB',1 union all
select N'何',561,456,28,'DSY',3 union all
select N'何',561,456,28,'RMB',4
--------------生成数据--------------------------
SELECT *
FROM HUANG 
UNION ALL 
SELECT DISTINCT  N'合计',(SELECT SUM(DISTINCT [sheet_qty]) FROM HUANG ),(SELECT SUM(DISTINCT[sale_amt]) FROM HUANG ),(SELECT SUM(DISTINCT aa) FROM huang ),NULL ,(select SUM( DISTINCT [现金]) FROM huang )
from [huang]

----------------结果----------------------------
/* 
收银员  sheet_qty   sale_amt    AA          结算方式   现金
---- ----------- ----------- ----------- ------ -----------
刘    392         123         16          DSY    10
刘    392         123         16          RMB    1
何    561         456         28          DSY    3
何    561         456         28          RMB    4
合计   953         579         44          NULL   18
*/
  相关解决方案