Erro ao Criar consulta

(leandroauler) #1

Galera,

Estou tentando criar a consulta com o seguinte sql:

SELECT a.*,b.* from
(
SELECT 
Data,
truncate((unix_timestamp(HoraSaida))/(60*60)) AS IntervaloI,
Idlinha, 
Sentido, 
Count(Viagem) as VI, 
SUM(Passageiros), 
ROUND(SUM(Passageiros)/Count(Viagem)) as Med_Pass
FROM
GuiasMov
Where
Sentido = 0 AND 
IdLinha = 13 AND 
HoraSaida >= '2010-10-18 04:00' AND 
HoraSaida <= '2010-10-18 23:00' 
GROUP BY 
truncate((unix_timestamp(HoraSaida))/(60*60))
)a,
(
SELECT
Data, 
truncate((unix_timestamp(HoraSaida))/(60*60)) AS Intervalo, 
Idlinha, 
Sentido, 
Count(Viagem) AS VV, 
SUM(Passageiros), 
ROUND(SUM(Passageiros)/Count(Viagem)) as Med_Pass 
FROM 
GuiasMov 
Where 
Sentido = 1 AND 
IdLinha = 13 AND 
HoraSaida >= '2010-10-18 04:00' AND HoraSaida <= '2010-10-18 23:00' 
GROUP BY truncate((unix_timestamp(HoraSaida))/(60*60))
)b
WHERE
Intervalo = IntervaloI

Mas está gerando o seguinte erro:

Parse error: syntax error, unexpected '(', expecting ',' or ';' in C:\Program Files\NetMake\v5\wwwroot\scriptcase\app\SIO\grid_rel_media_passageiros_faixa_horaria\grid_rel_media_passageiros_faixa_horaria_grid.class.php on line 57
(Diogo Toscano) #2

Eu nao estou no trabalho, nao da pra testar, mas pra voce poder continuar trabalhando … cria uma view e faz uma consulta simples em cima da view.

(leandroauler) #3

Está dando erro por causa das subqueries:

CREATE VIEW RlFxHr AS 
SELECT a.*,b.* from
(SELECT Data, truncate((unix_timestamp(HoraSaida))/(60*60),0) AS IntervaloI, Idlinha, Sentido, Count(Viagem) as VI, SUM(Passageiros), ROUND(SUM(Passageiros)/Count(Viagem)) as Med_Pass FROM GuiasMov Where Sentido = 0 AND IdLinha = 13 AND HoraSaida >= '2010-10-18 04:00' AND HoraSaida <= '2010-10-18 23:00' GROUP BY truncate((unix_timestamp(HoraSaida)/(60*60)),0)
)a,
(SELECT Data, truncate((unix_timestamp(HoraSaida))/(60*60),0) AS Intervalo, Idlinha, Sentido, Count(Viagem) AS VV, SUM(Passageiros), ROUND(SUM(Passageiros)/Count(Viagem)) as Med_Pass FROM GuiasMov Where Sentido = 1 AND IdLinha = 13 AND HoraSaida >= '2010-10-18 04:00' AND HoraSaida <= '2010-10-18 23:00' GROUP BY truncate((unix_timestamp(HoraSaida)/(60*60)),0)
)b
Where Intervalo = IntervaloI;

ERRO:

View´s SELECT contains a subquery in the FROM clause
(leandroauler) #4

Diogo,

View não pode ser criada com subquery??

(Diogo Toscano) #5

cade as tabelas do from original?

seu sql esta errado …

FROM (select …), (select …)