【问题标题】: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

最近几天我对这个查询有点困惑。如果可能,请帮助我。 提前致谢

【问题讨论】:

  • 请同时提供创建表查询
  • 两个月的增值税差价,当月是什么意思?
  • 你的问题不清楚。即使我很困惑..

标签: php mysql sql codeigniter phpmyadmin


【解决方案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)
      

      这假定状态只能是一或零。

      【讨论】:

      • 不客气。乐于助人。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-25
      • 1970-01-01
      • 2016-10-12
      • 2021-10-09
      • 2016-04-15
      • 1970-01-01
      相关资源
      最近更新 更多