2012-09-25 149 views
0

这是相当一个很难解释,但可能(希望)一个容易解决,所以我只解释这是什么,我想acheive togethor依赖列的值。如何添加另一列

我有一个表格,可以输入多个日志作为一个单独的行,然后我有一个小数作为另一列,我试图为每一天创建一个摘要,这将是类似于

01/01/1900 | | 5.5

即使世界一个条目为01/01/1900 2.5,一个具有3中,以便将所述值togethor为天主表?

我唯一的问题是增加的日期togethor如果日期是相同的,我想是这样

选择不同的日期和与得到小数列,其中日期的总和表连接它...这就是我不太确定的地方?

任何帮助将是伟大的!感谢

+1

查找[按组(http://www.sql-tutorial.com/sql-group-by-sql-tutorial/) –

+1

您可以使用GROUP BY。它是日期列还是日期时间列? – Prasanna

回答

2

如果你的表被命名为日志数据像

log_date  | value 
1900-01-01 | 2.5 
1900-01-01 | 3 

然后将查询是

SELECT sum(value) FROM logs GROUP BY log_date 
+0

完美!知道这比我做出来要容易得多,谢谢! – Alex

0
CREATE VIEW Summary 
AS 
SELECT 
    DateValue, 
    SUM(DecimalValue) DayTotal 
FROM 
    EventTable 
GROUP BY 
    DateValue; 

然后

SELECT 
    * 
FROM 
    Summary 
WHERE 
    DateValue = '1900-01-01' 
1

你在找什么是可能是一个GROUP BY子句。

SELECT [ yourdatecol, ] sum(yourdecimalcol) FROM yourtable 
    [ WHERE yourdatecol = .. ] 
    GROUP BY [ get_ymd_from_date(yourdatecol) | yourdatecol ] ; 

通过这样的语法,您将获得由相同的datecol值选​​择的行集合的总和。您可能还需要大约日期(例如只取Y/M/d一部分来自它),如果日期包含H/M/ss和你想要的是每一天的款项。我用方括号括起来的可选部分。

1
SELECT log_date,sum(value) FROM logs GROUP BY log_date 
0

试试这个:

SELECT CONVERT(VARCHAR, DateColumn, 103) AS OutputDate, SUM(ValueColumn) AS TotalValue 
FROM YourTable 
GROUP BY CONVERT(VARCHAR, DateColumn, 103) 
0

我假定一个DateTime使用,让LOGDATE调用它。我也假设另一个是小数,我们称它为logdecimal。

使用SQL Server 2008,你可以做(​​的是,它是没有时间的一部分一种称为日期):使用SQL Server没有日期类型

SELECT 
CAST(logdate as date) as TheDay, 
SUM(logdecimal) as TheSum 
FROM logTable 
GROUP BY CAST(logdatetime as date) 

,也许是这样的:

SELECT 
CONVERT(varchar(10), logdate, 101) as TheDay, 
SUM(logdecimal) as TheSum 
FROM logTable 
GROUP BY CONVERT(varchar(10), logdate , 101) 

问候,欧莱

编辑:如果它是一个DateTime(包括时间部分)要组作为一个日期(不包括部分时间)这人会工作。看起来这个问题并非如此。