我有一个表valudesumrecordinfo 里面有几个字段
其中有两个是code,data
code中有很多数据编号 我要查其中225353277和325252238编号的数据最大值。
数据存放在data 中。
我应该怎么写语句呢??
SELECT max(data) as aa
FROM ValueSumRecordInfo
where code='325252238'
这是查一个的 ,但一起查两个怎么做呢?
其中有两个是code,data
code中有很多数据编号 我要查其中225353277和325252238编号的数据最大值。
数据存放在data 中。
我应该怎么写语句呢??
SELECT max(data) as aa
FROM ValueSumRecordInfo
where code='325252238'
这是查一个的 ,但一起查两个怎么做呢?
FROM ValueSumRecordInfo
where code='325252238' or code = '225353277'
FROM ValueSumRecordInfo
where code in('325252238','225353277')
group by code
FROM ValueSumRecordInfo
where code='325252238' or code = '225353277'
GROUP BY code对CODE分组就好了
我用SELECT code as '名称',max(data) as '总量'
FROM ValueSumRecordInfo
where ValueSumRecordInfo.code in('325252238','225353277')
group by code
查出来得
名称 总量
325252238 467836
225353277 465380
我能不能把325252238和225353277进行命名呢!??
让它变成如:
名称 总量
bb 467836
aa 465380
如果有命名字段直接以那个字段分组就行了如果有另一个表关联,那以关联表的命名字段分组
如果以上不满足,那用case when 判断吧
case
when 条件1 then 结果一
when 条件2 then 结果二
else 其他结果
end
此例中,我们要将325252238和225353277分别命名为AA,bb使用此语句就可实现,具体语句为:
select 名称=case
when code=325252238 then 'aa'
when code=225353277 then 'bb'
end
,max(data) as '总量' from A where code in (325252238,225353277) group by code
查询结果为:
名称 总量
---- -------
bb 432554
aa 4324432(2 行受影响)
使用此方法需要注意的一点就是在查询case语句后一定要加上end否则或报错。
我的测试数据为:
create table A
(
code int ,
data varchar(23)
)
GOinsert into A values (325252238,'232423')
insert into A values (325252238,'34234')
insert into A values (325252238,'32423')
insert into A values (325252238,'4324432')
insert into A values (325252238,'4324234')
insert into A values (225353277,'23423')
insert into A values (225353277,'234233')
insert into A values (225353277,'432554')
insert into A values (225353277,'34534')
FROM ValueSumRecordInfo
where code='325252238' or code = '225353277'
GROUP BY code