gpt4 book ai didi

mysql - 在mysql中选择值大于0的列和值

转载 作者:行者123 更新时间:2023-11-29 07:39:08 24 4
gpt4 key购买 nike

我有两个表。

Name: `table1`
name d1 d2 d3 d4 d5
Tapan 2 0 3 8 0
another table : `table2`
name c1 c2 c3 c4 c5 c6
Tapan 12 14 0 0 17 0

两个表中都有 50 多列。如何获得如下报告:

name    - Tapan
d1 - 2
d3 - 3
d4 - 8
c1 - 12
c2 - 14
c5 - 17
total - 56

我未能为值>0 且名称 = 'Tapan' 的报告创建 sql 查询

SELECT a.*, b.* 
FROM table1 a
INNER JOIN table2 b
ON a.name = b.name

See the SQL Fiddle

我需要获取列值大于 0

的报告

最佳答案

如果您将表格重新设计成这样会更好:

表 1:

Name    Dnum    Dval
Tapan 1 2
Tapan 2 0
Tapan 3 3
Tapan 4 8
Tapan 5 0

表 2:

Name    Cnum    Cval
Tapan 1 12
Tapan 2 14
Tapan 3 0
Tapan 4 0
Tapan 5 17
Tapan 6 0

然后你可以这样查询:

SELECT CONCAT('d', Dnum) AS name, Dval AS Tapan
FROM table1
WHERE Name = 'Tapan' AND Dval > 0
UNION ALL
SELECT CONCAT('c', Cnum) AS name, Cval AS Tapan
FROM table2
WHERE Name = 'Tapan' AND Cval > 0

您也可以像这样组合两个表:

Name    Prefix  Num    Val
Tapan d 1 2
Tapan d 2 0
Tapan d 3 3
Tapan d 4 8
Tapan d 5 0
Tapan c 1 12
Tapan c 2 14
Tapan c 3 0
Tapan c 4 0
Tapan c 5 17
Tapan c 6 0

那么查询是:

SELECT CONCAT(prefix, num) AS name, val AS Tapan
FROM yourTable
WHERE name = 'Tapan' AND val > 0

关于mysql - 在mysql中选择值大于0的列和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47322429/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com