SQL条件只有1列

问题描述 投票:0回答:1

我很难找到如何只在一列中放置where条件。

总而言之,我希望在数据库中拥有所有票证的列,并且具有给定日期的所有票证的另一列。

我的SQl请求:

SELECT
  i.created AS creation, l.label AS activite, 
  COUNT(l.label) AS nbTicket, COUNT(l.label) AS nbEntree
FROM label AS l INNER JOIN
     jiraissue AS i
     ON (l.issue = i.id) AND i.issuetype <> 3
GROUP BY activite

所以在这里,我有来自数据库的所有票据,但如果我有日期的where条件:

SELECT l.label AS activite, SUM(i.timespent/3600/8) AS consomme, SUM(i.timeestimate/3600/8) AS raf, COUNT(l.label) AS nbTicket, 
    SUM(i.timeoriginalestimate/3600/8) AS chargeProvisoire, COUNT(l.label) AS nbEntree 
    FROM label AS l INNER JOIN jiraissue AS i ON (l.issue = i.id)  
    WHERE l.label IN ('Devis','TGC1','TGC2','TGC3','TGC4','TGC5','TGC5-Bis','TGC6','TGC7','TGC8','TGC8-Bis','TGC9','TGC10','TGC10-Bis','TGC12','TGC13','TGC13-Bis','TGC14','TGC50','TGC60')
    AND i.issuetype <> 3 AND i.created LIKE "2014-01-%" GROUP BY activite

我只有2019年1月的票。

他们的解决方案是列==> nbTicket中的所有票证以及列中的'where'子句的所有票证==> nbEntree?

mysql sql where-clause
1个回答
0
投票

您可以在第一个查询中使用条件SUM(),如下所示:

SELECT
  max(i.created) AS creation,
  l.label AS activite, 
  COUNT(*) AS nbTicket,
  SUM(case when i.created LIKE "2019-01-%" then 1 end) AS nbEntree
FROM label AS l INNER JOIN
     jiraissue AS i
     ON (l.issue = i.id) AND i.issuetype <> 3
GROUP BY activite
© www.soinside.com 2019 - 2024. All rights reserved.