希望在下面的查询中获得一些帮助。
我需要的是,只有在一个表中存在所有3个事件ID时才返回结果。
终端ID可以在此表中与其关联的多个事件ID。 我只查找指定日期范围内有3个特定事件的终端ID:
以下查询返回具有三个事件ID中任何一个的终端ID,并且我不确定如何告诉它获得我需要的内容。
SELECT
EJTM.terminal_id
FROM
IG_LOG..EJ_Terminal_Master EJTM
JOIN it_sysweb..EJ_Tran_Event_Master EJEM ON EJTM.event_type_id = EJEM.EJ_tran_event_id
WHERE
EJEM.EJ_tran_event_id in
(
5011 --SignOn
,5119 --Reinit Printer
,5101 --NoSale
)
AND
EJTM.event_date_time between '2017-06-06 03:00:00.000' and '2017-06-08 03:00:00.000'
AND
EJEM.language_id = 'EN-US'
GROUP BY
EJTM.terminal_id
答案 0 :(得分:1)
虽然有点健壮,但使用和子句会起作用
{
"error": "invalid_grant",
"error_description": "AADSTS50131: Windows device is not in required device state: domain_joined\r\nTrace ID: 93b98569-1c21-4f48-bee6-afa48aa73a00\r\nCorrelation ID: a52bb23c-dc2e-4fc1-83b7-b1d2a4d69e89\r\nTimestamp: 2017-06-14 11:20:06Z",
"error_codes": [50131],
"timestamp": "2017-06-14 11:20:06Z",
"trace_id": "<masked>",
"correlation_id": "<masked>",
"claims": "{\"access_token\":{\"polids\":{\"essential\":true,\"values\":[\"06ae1081-33ca-489c-85fa-42e53fc90f96\"]}}}"
}
答案 1 :(得分:1)
您可以使用GROUP BY
进行COUNT
,例如:
SELECT tm.terminal_id
FROM IG_LOG..EJ_Terminal_Master.tm JOIN it_sysweb..EJ_Tran_Event_Master em
ON tm.event_type_id = em.EJ_tran_event_id
WHERE em.EJ_tran_event_id IN (5011, 5119, 5101)
AND em.event_date_time between '2017-06-06 03:00:00.000' AND '2017-06-08 03:00:00.000'
AND em.language_id = 'EN-US'
GROUP BY tm.terminal_id
HAVING COUNT(DISTINCT em.EJ_tran_event_id) = 3;