且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

获得独特价值的总和

更新时间:2023-02-16 16:08:34

试试这个



Try this

DECLARE @TBL TABLE 
(RID  INT,
 CID  INT, 
 NAME VARCHAR(50),
 Data VARCHAR(10));
 
INSERT INTO @TBL
(
	RID,
	CID,
	NAME,
	Data
)
SELECT 1, 1, 'Test', '2:15'
UNION ALL
SELECT 1, 1, 'Test', '4:15' UNION ALL
SELECT 2, 1, 'Name', '1:00' UNION ALL
SELECT 2, 1, 'Name', '2:15'

SELECT distinct TMP.RID, T.CID, T.NAME, cast(TMP.TOTAL_HOURS as varchar(10)) + ':' + cast(TMP.TOTAL_MINS as varchar(10))
FROM
(
select  RID, Sum(DATEPART(hh, CAST(data as DATETIME))) TOTAL_HOURS, Sum(DATEPART(MI, CAST(data as DATETIME))) TOTAL_MINS
from @TBL
group by RID
) TMP INNER JOIN @TBL T ON TMP.RID = T.RID


如下所示进行如下查询

当值为十进制时,int

Make a query like following below
when Value is decimal,int
select RID, CID, Name, sum(Value) as Value from table_name group by RID, CID, Name



在时间日期时间


at the time datetime

SELECT RID, CID, Name, SUM(DATEDIFF(MINUTE, '0:00:00', convert(time, Value, 8))) as totalTime
FROM table_name 
GROUP BY RID, CID, Name


运行此





Run this


create table ##table(id bigint identity(1,1),name varchar(max) ,value varchar(max))

insert into ##table (name,value) values('King','2:15')
insert into ##table (name,value) values('KIng','4:15')
insert into ##table (name,value) values('Fisher','1:00')
insert into ##table (name,value) values('Fisher','2:15')

select *From ##table





查询





Query

select name,convert(time,dateadd(s,SUM(
( DATEPART(hh, value) * 3600 ) +
( DATEPART(mi, value) * 60 ) +
 DATEPART(ss, value)),0)) From ##table group by name