CREATE
ALGORITHM = UNDEFINED
DEFINER = `root`@`localhost`
SQL SECURITY DEFINER
VIEW `vw_bal1` AS
SELECT
`tbconta`.`conta` AS `conta`,
COALESCE((SUM((CASE
WHEN (`tbdiario`.`contad` = `tbconta`.`conta`) THEN `tbdiario`.`valor`
ELSE 0
END)) - SUM((CASE
WHEN (`tbdiario`.`contac` = `tbconta`.`conta`) THEN `tbdiario`.`valor`
ELSE 0
END))),
0) AS `saldo`
FROM
((`diario`.`tbsupervariavel`
JOIN `tbconta`)
LEFT JOIN `tbdiario` ON (((`tbconta`.`conta` = `tbdiario`.`contad`)
AND (`tbdiario`.`dia` < `diario`.`tbsupervariavel`.`primeirodia`))))
GROUP BY `tbconta`.`conta`
ORDER BY `tbconta`.`conta`
Eu levei o dia inteiro para montar esse view, ele dá o saldo inicial do balancete. Ele funciona para todos os períodos de apuração, menos para o primeiro período de apuração. Eu pensei que o LEFT JOIN já resolvia o problema, mas não resolve não. Com a ajuda do Google, consegui encontrar a dica de como fazer o LEFT JOIN funcionar. Ele disse que para tirar a cláusula WHERE e no lugar colocar a cláusula AND como está no código acima.
Pergunta
Frank K Hosaka
CREATE ALGORITHM = UNDEFINED DEFINER = `root`@`localhost` SQL SECURITY DEFINER VIEW `vw_bal1` AS SELECT `tbconta`.`conta` AS `conta`, COALESCE((SUM((CASE WHEN (`tbdiario`.`contad` = `tbconta`.`conta`) THEN `tbdiario`.`valor` ELSE 0 END)) - SUM((CASE WHEN (`tbdiario`.`contac` = `tbconta`.`conta`) THEN `tbdiario`.`valor` ELSE 0 END))), 0) AS `saldo` FROM ((`diario`.`tbsupervariavel` JOIN `tbconta`) LEFT JOIN `tbdiario` ON (((`tbconta`.`conta` = `tbdiario`.`contad`) AND (`tbdiario`.`dia` < `diario`.`tbsupervariavel`.`primeirodia`)))) GROUP BY `tbconta`.`conta` ORDER BY `tbconta`.`conta`
Eu levei o dia inteiro para montar esse view, ele dá o saldo inicial do balancete. Ele funciona para todos os períodos de apuração, menos para o primeiro período de apuração. Eu pensei que o LEFT JOIN já resolvia o problema, mas não resolve não. Com a ajuda do Google, consegui encontrar a dica de como fazer o LEFT JOIN funcionar. Ele disse que para tirar a cláusula WHERE e no lugar colocar a cláusula AND como está no código acima.
Editado por Frank K HosakaLink para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.