我已經做了一些相同的錯誤,我幾乎已經嘗試過所有建議的解決方案。Union SUM SQL必須有其自己的別名
這裏是SQL:
SELECT Sum(h.counter1 + l.counter2) AS hour_amount
FROM (
SELECT 1
FROM xp_hour h
WHERE h.account_id = '1'
AND h.hour_date = Date('2017-03-06')
AND ((
h.from_time < Time('06:00')
AND h.till_time > Time('06:00'))
OR (
h.from_time < Time('15:00')
AND h.till_time > Time('15:00'))
OR (
h.from_time = Time('06:00')
AND h.till_time = Time('15:00'))))
UNION ALL
(
SELECT 1
FROM xp_leave l
WHERE l.account_id = '1'
AND ((
l.from_datetime < Timestamp('2017-03-06 06:00')
AND l.till_datetime > Timestamp('2017-03-06 06:00'))
OR (
l.from_datetime < Timestamp('2017-03-06 15:00')
AND l.till_datetime > Timestamp('2017-03-06 15:00')))) t_union
錯誤
Error: Every derived table must have its own alias
我想如果你只是格式化了你的查詢,你會爲自己節省幾個小時。 – Stephen