Sql server T-SQL select语句…求和并有问题
我有一张类似下面的桌子Sql server T-SQL select语句…求和并有问题,sql-server,tsql,Sql Server,Tsql,我有一张类似下面的桌子 StoretCode LocName ParName DateTime Value 95010-A-9 AERBAS On Line 201305160000 5 95010-A-9 AERBAS On Line 201305170000 5 95010-A-9 AERBAS On Line 201305180000 8 Select 'AB 901_4','AB 905_8', Sum(Value) from
StoretCode LocName ParName DateTime Value
95010-A-9 AERBAS On Line 201305160000 5
95010-A-9 AERBAS On Line 201305170000 5
95010-A-9 AERBAS On Line 201305180000 8
Select 'AB 901_4','AB 905_8', Sum(Value)
from dbo.DATA
我需要将每行的值添加到完全相同的日期。
(例如,前两行等于'5',后两行等于'5',后两行等于'8')
StoretCode LocName ParName DateTime Value
95010-A-9 AERBAS On Line 201305160000 5
95010-A-9 AERBAS On Line 201305170000 5
95010-A-9 AERBAS On Line 201305180000 8
Select 'AB 901_4','AB 905_8', Sum(Value)
from dbo.DATA
结果还应该有一个新的LocName…因此它应该看起来像
StoretCode LocName ParName DateTime Value
95010-A-9 AERBAS On Line 201305160000 5
95010-A-9 AERBAS On Line 201305170000 5
95010-A-9 AERBAS On Line 201305180000 8
Select 'AB 901_4','AB 905_8', Sum(Value)
from dbo.DATA
我试过
StoretCode LocName ParName DateTime Value
95010-A-9 AERBAS On Line 201305160000 5
95010-A-9 AERBAS On Line 201305170000 5
95010-A-9 AERBAS On Line 201305180000 8
Select 'AB 901_4','AB 905_8', Sum(Value)
from dbo.DATA
但结果与预期一样…一行包含所有行
StoretCode LocName ParName DateTime Value
95010-A-9 AERBAS On Line 201305160000 5
95010-A-9 AERBAS On Line 201305170000 5
95010-A-9 AERBAS On Line 201305180000 8
Select 'AB 901_4','AB 905_8', Sum(Value)
from dbo.DATA
也试过
StoretCode LocName ParName DateTime Value
95010-A-9 AERBAS On Line 201305160000 5
95010-A-9 AERBAS On Line 201305170000 5
95010-A-9 AERBAS On Line 201305180000 8
Select 'AB 901_4','AB 905_8', Sum(Value)
from dbo.DATA
Select 'AB 901_4','AB 905_8', Sum(Value)
from dbo.DATA
Where LocName, DateTime = LocName, DateTime
但结果是
StoretCode LocName ParName DateTime Value
95010-A-9 AERBAS On Line 201305160000 5
95010-A-9 AERBAS On Line 201305170000 5
95010-A-9 AERBAS On Line 201305180000 8
Select 'AB 901_4','AB 905_8', Sum(Value)
from dbo.DATA
Msg 4145,第15级,状态1,第3行在“,”附近预期条件的上下文中指定的非布尔型表达式
StoretCode LocName ParName DateTime Value
95010-A-9 AERBAS On Line 201305160000 5
95010-A-9 AERBAS On Line 201305170000 5
95010-A-9 AERBAS On Line 201305180000 8
Select 'AB 901_4','AB 905_8', Sum(Value)
from dbo.DATA
尝试了其他几种,但结果与上面的非布尔msg相似
StoretCode LocName ParName DateTime Value
95010-A-9 AERBAS On Line 201305160000 5
95010-A-9 AERBAS On Line 201305170000 5
95010-A-9 AERBAS On Line 201305180000 8
Select 'AB 901_4','AB 905_8', Sum(Value)
from dbo.DATA
Select StoretCode , 'AERBAS' as LocName , ParName , DATA.DateTime, datecount.count as [value]
from dbo.DATA
join ( select DateTime, count(*) as count from dbo.DATA group by DateTime ) datecount
on data.DateTime = datecount.DateTime
where date.StoretCode is not null
如果您想要LocName的硬编码值,那么“LocName”可能是这样的
StoretCode LocName ParName DateTime Value
95010-A-9 AERBAS On Line 201305160000 5
95010-A-9 AERBAS On Line 201305170000 5
95010-A-9 AERBAS On Line 201305180000 8
Select 'AB 901_4','AB 905_8', Sum(Value)
from dbo.DATA
Select
max(StoretCode),
'AERBAS' as Locname,
max(ParName),
DateTime,
Sum(Value)
from dbo.DATA
group by DateTime
order by DateTime
新的地名来自哪里?这是所有行将获得的常量值还是取决于原始值?很抱歉…我需要创建新的LocName并删除添加到一起的行…为什么不按日期时间分组。通过[DateTime]从dbo.DATA组中选择'AB 901_4','AB 905_8',求和(值),但这会按StoretCode对所有内容进行分组并删除“Value”列名…我正在处理的实际表有74个不同的StoretCode…我想添加带有我提到的Localnames的行。我不知道如何帮助您,因为这回答了我理解的问题。此输出与所需的输出有何不同?更详细一点具体的…我实际上正在处理一个包含74个StoretCodes(包括NULL)、95个Localnames(很多都有NULL StoretCodes)的表…我需要结合我在示例中提到的两个Localnames…根据发布的示例数据,此查询是否生成正确的结果?我不清楚这两个地名的结合意味着什么。