Mysql 和列值
我有这样的查询结果,从TableName中选择Type,Jan,FEB:Mysql 和列值,mysql,sql,Mysql,Sql,我有这样的查询结果,从TableName中选择Type,Jan,FEB: +-----------+------+------+ | Type | JAN | FEB | +-----------+------+------+ | MATIC | 137 | 128 | | MOPED | 41 | 23 | | MOPED PRM | 8 | 9 | | SPORT | 5
+-----------+------+------+
| Type | JAN | FEB |
+-----------+------+------+
| MATIC | 137 | 128 |
| MOPED | 41 | 23 |
| MOPED PRM | 8 | 9 |
| SPORT | 55 | 62 |
+-----------+------+------+
4 rows in set (1.23 sec)
我想把jan列和feb列相加,如下所示
+-----------+------+------+------+
| Type | JAN | FEB | TOT |
+-----------+------+------+------+
| MATIC | 137 | 128 | 165 |
| MOPED | 41 | 23 | 64 |
| MOPED PRM | 8 | 9 | 17 |
| SPORT | 55 | 62 | 117 |
+-----------+------+------+------+
4 rows in set (1.23 sec)
有这样的命令吗
select type, jan, feb, sum (jan) + sum (feb) As TOT
From Table Name
这是我的语法
Select SubTbl2.jenis,
sum(If(Month = 1 and Year = 2013 ,Result,0)) as 'JAN',
sum(If(Month = 2 and Year = 2013,Result,0)) as 'FEB'
From (
select SubTbl1.jenis,month(SubTbl1.TglAmb) as Month,
year(SubTbl1.tglAmb) as Year,
count(SubTbl1.jenis) as Result
From (
select jual_leasing.TglAmb,jual_leasing.NoMsn,typemotor.jenis
,lokasi.lokasi3s
from jual_leasing
left join typeconvert
on jual_leasing.typeK = typeconvert.typesystem
left join typemotor
on typeconvert.typeconv = typemotor.type
left join lokasi
on jual_leasing.kodelok = lokasi.kodelokasi
where
lokasi.lokasi3S = 'YMS PURWODADI 3S'
group by jual_leasing.NoMsn)
as SubTbl1
group by SubTbl1.jenis,Month,Year )
as SubTbl2 group by SubTbl2.jenis;
结果在顶部,我尝试在第4行添加脚本,使用
1月+2月合计
但仍有警告:
错误1054(42S22):“字段列表”中的未知列“JAN”
Tq For advanced要获得所需的输出,只需执行以下操作:
select type, jan, feb, jan + feb As TOT
from TableName
您不需要设计用于添加不同行的值的SUM
编辑对于实际查询,可以添加两个和。此外,以下内容也适用于您:
sum(If((Month = 1 or Month = 2) and Year = 2013 ,Result,0)) as 'TOT',
上的MySQL文档表明,
+
确实是加法运算符
因此,您的查询将是:
select type, jan, feb, jan + feb from table
Sum在列而不是行上工作;如果希望将两列的总和相加,则可以使用此选项
p.S.137+128=265我想你会发现这个问题被否决了,因为它实际上与编程无关——这更像是一个一般的SQL语法问题。也就是说,我认为你应该能够总结你的价值观:
select type, jan, feb, jan + feb As TOT From Table Name
只需使用以下内容更改查询的开头:
Select SubTbl2.jenis,
sum(If(Month = 1 and Year = 2013 ,Result,0)) as 'JAN',
sum(If(Month = 2 and Year = 2013,Result,0)) as 'FEB',
sum(If(Month = 1 and Year = 2013 ,Result,0)) +
sum(If(Month = 2 and Year = 2013,Result,0)) as 'TOT'
From (
或
Tq Trogdor,但存在警告错误1054(42S22):“字段列表”中的未知列“JAN”,Tq用于answer@ony您使用过这个确切的查询还是另一个查询?。如果您使用了不同的查询,请更新您的问题。如果你的第一个问题does@Troqdor,我只是更新了我的问题,有3个相关的表,我只是更新了我的问题,tq..tq Roberto,:)但是有语法错误1054(42S22)的警告:“字段列表”中的未知列“JAN”可能你给出的示例有问题?SQL通常区分大小写,因此请确保查询的大小写与实际列名相同。准备好了,我会检查它,Tqi在我的syntaxTq上有两个子表作为SQL的答案,单引号表示字符串。表名和字段名应该使用backticks
选择[…]作为'JAN`
(或者根本不使用任何…)。Tq Marty,问题是基本逻辑,我对myscript的长度感到困惑:D Tq。。第二个答案更简单,Tq.:)
Select SubTbl2.jenis,
sum(If(Month = 1 and Year = 2013 ,Result,0)) as 'JAN',
sum(If(Month = 2 and Year = 2013,Result,0)) as 'FEB',
sum(If((Month = 1 or Month = 2) and Year = 2013,Result,0)) as 'TOT'
From (