选择具有状态历史记录的ticketid

时间:2015-06-12 04:34:35

标签: sql sql-server database-administration

我尝试选择具有当前打开状态的门票(即待机,待定供应商,正在进行中),并且具有特定的门票类别=' SR'两个日期之间(2015年4月1日至2015年4月30日)。

select * from tkt_table where class = 'SR' and status = 'INPROG' or status = 'PENDING' or status = 'INC'... order date by datereport desc

有两个表,其中包含故障单信息的表为tkt_table,另一个表具有故障单状态历史记录tktStatus_table。他们都以tktid为关键。

如何获取此SQL语句,以显示在所选日期(4月1日至4月30日)之间状态发生变化的所有故障单

非常感谢:)

左边的表是 tkt_table ,右边是 tkt_status

tkt_table tkt_status

2 个答案:

答案 0 :(得分:0)

您可以在having子句中使用COUNT(DISTINCT状态),如下所示:

SELECT * FROM
tkt_table t inner join 
(SELECT tktid, count(distinct status) cnt FROM tktStatus_table 
 WHERE dateReport >= '20150401' AND dateReport < '20150501'
 GROUP BY tktid 
 HAVING COUNT(DISTINCT status) > 1) as a on t.tktid=a.tktid

答案 1 :(得分:0)

您可params.permit(:tech_id, :customer_id )表格,然后join票证ID

Group By