簡體   English   中英

僅1列的SQL條件

[英]SQL condition on only 1 column

我正在努力尋找如何僅在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中?

您可以在第一個查詢中使用條件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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM