我想同时返回指标 447 和 615 的值,因为 447 将在 QSA.NumValue 中返回,而 615 将在 QSA.DateTimeValue 中返回。我需要它在填充时返回,所以如果它是 615,则不允许 DateTimeValue 为 NULL,如果是 447,则不允许 NumValue 为 NULL,因为当包含在 WHERE 语句中时,简单的 OR 语句将不起作用。
这可能吗?
SELECT
Q.ID
,Q.Title
,QS.ID
,QSA.QMID
,QSA.NumValue
,QSA.DateTimeValue
,QM.MetricID
,S.Date
FROM
QSA
INNER JOIN QM
ON QSA.QMID = QM.ID
INNER JOIN QS
ON QSA.SessionID = QS.ID
INNER JOIN Q
ON QS.ID = Q.ID
INNER JOIN SQ
ON Q.ID = SQ.ID
INNER JOIN S
ON SQ.ID = S.ID
WHERE
QM.MetricID IN (447, 615)
AND QSA.DateTimeValue IS NOT NULL
提前谢谢你。
最佳答案
您可以使用以下WHERE
:
WHERE
(QM.MetricID = 447 AND QSA.NumValue IS NOT NULL)
OR (QM.MetricID = 615 AND QSA.DateTimeValue IS NOT NULL)
关于sql - 如何在同一 SQL 查询中查询 2 个不同的事物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47281522/