查看从主查询中获取子查询值中的where语句值。SQL设置子查询其中来自主查询的值
这是一个简化版本的即时通讯尝试实现,但它会给你的想法。
SELECT Date, Day, Year,
(SELECT COUNT(*) AS [Moves]
FROM
(
SELECT moves AS too
FROM moveevent
FULL OUTER JOIN job AS too ON moves = too.jobid
WHERE (moveevent.time >= [start] and moveevent.time <= [end])
UNION ALL
SELECT moves AS frm
FROM moveevent
FULL OUTER JOIN job AS frm ON moves = frm.jobid
WHERE (moveevent.time >= [start] and moveevent.time <= [end])
)
AS m
FULL OUTER JOIN job ON m.too = jobid
WHERE mainjobid = jobid
GROUP BY jobid)
)
AS [Total Moves by Shift],
FROM job
LEFT OUTER JOIN mainjob ON jobid = mainjobid
WHERE jobid = '12345'
and [start] = '2013-05-25 12:45:00.000'
and [end] = '2013-05-25 17:45:00.000'
基本上我想在子查询中的起点和终点值主查询中定义,但我不能让他们成为有效的列名。
名称“开始”和“结束”,这些不是任何表中的字段,这些只是组成,我希望能够在底部的主要查询where子句中设置这些。
为什么在'UNION ALL'中使用完全相同的查询?还是它是一个错字? – NickyvV
你知道Common Table Expressions(CTE)吗?我不知道我是否正确理解这个问题,但在这种情况下它可以帮助你。 – Ziouas
工会也将汇集在一起,这只是一个削减版本,但它需要其他部分来区分两者。 – Matt