从具有不同条件的同一张表中获取数据[关闭]
Posted
技术标签:
【中文标题】从具有不同条件的同一张表中获取数据[关闭]【英文标题】:Fetch data from same table with different condition [closed] 【发布时间】:2014-12-11 09:29:59 【问题描述】:我有一个表名作为用户(id,Name,Status,joined_date)。
用户表
id | Name | status | joined_date
-------------------------------------
1 | TDS | 0 | 2014-10-16
2 | TDS | 1 | 2014-10-11
3 | VAT | 0 | 2014-10-11
4 | IT | 0 | 2014-10-11
5 | IT | 1 | 2014-10-11
6 | TDS | 0 | 2014-10-16
7 | TDS | 1 | 2014-10-30
8 | VAT | 0 | 2014-11-01
9 | IT | 0 | 2014-10-07
10 | IT | 1 | 2014-10-11
在我的结果中,我需要当月的姓名计数和当月状态的姓名计数为一。对于每个名称,两者都在同一行中。
预期结果
Name | current_month | current_month_ststus_1
-----------------------------------------------------
VAT | 2 | 0
IT | 4 | 1
TDS | 4 | 2
最近几天我对这个查询有点困惑。如果可能,请帮助我。 提前致谢
【问题讨论】:
请同时提供创建表查询 两个月的增值税差价,当月是什么意思? 你的问题不清楚。即使我很困惑.. 【参考方案1】:SELECT name,count(status) as current_month, sum(status) as current_month_status FROM
usertable
WHERE month(joined_date) = MONTH(CURDATE()) 按名称分组
【讨论】:
您应该在 where 子句中包含年份,否则来自不同年份的同一月份将被组合在一起。 (例如,请参阅我的答案)【参考方案2】:如果状态只允许0,1,
你可以得到这样的结果。
select count(Name) as current_month,sum(status) as current_month_status_1 from table group by currentmonth
【讨论】:
【参考方案3】:select category_id,(select count(id) from category_images where delete_status='1'and
id = o.id group by category_id) as delete1,
(select count(id) from ategory_images where delete_status='0' and id = o.id group by
category_id)as delete2 from category_images o
我用 category_id 你必须用 name 字段好吧我希望这能解决你的问题
【讨论】:
【参考方案4】:嗯,我正在考虑类似以下的事情。
SELECT
Name,
COUNT(Status) AS current_month,
SUM(status) AS current_month_status_1
FROM
Usertable
WHERE
MONTH(joined_date) = MONTH(NOW())
AND YEAR(joined_date) = YEAR(NOW())
GROUP BY
Name,
YEAR(joined_date),
MONTH(joined_date)
这假定状态只能是一或零。
【讨论】:
不客气。乐于助人。以上是关于从具有不同条件的同一张表中获取数据[关闭]的主要内容,如果未能解决你的问题,请参考以下文章