View trazendo resultados diferente local e online
tenho a seguinte view local no mysql:
select
orcamentos.id,
orcamentos.id_empresa,
'orcamento' as tipo,
orcamentos.data_aprovacao,
month(orcamentos.data_aprovacao) as mes,
year(orcamentos.data_aprovacao) as ano,
sum(itens_orcamentos.quantidade) as quantidade,
sum(itens_orcamentos.preco_unidade) as preco_unidade,
sum(itens_orcamentos.desconto) as desconto,
sum(itens_orcamentos.preco_unidade_desconto) as preco_unidade_desconto,
orcamentos.desconto_orcamento as desconto_orcamento,
sum(itens_orcamentos.preco_total) as preco_total,
(orcamentos.total_outros_itens+orcamentos.outras_despesas+(select sum(preco_total) from itens_orcamentos where id_orcamento = orcamentos.id)) as total_sem_desconto,
(
(orcamentos.total_outros_itens+orcamentos.outras_despesas+(select sum(preco_total) from itens_orcamentos where id_orcamento = orcamentos.id)) -
(((orcamentos.total_outros_itens+orcamentos.outras_despesas+(select sum(preco_total) from orcamentos where id_orcamento = orcamentos.id))*orcamentos.desconto_orcamento)/100)
) as total_com_desconto
from
orcamentos
inner join itens_orcamentos
on orcamentos.id = itens_orcamentos.id_orcamento
where orcamentos.id_situacao in (3,5,6)
group by orcamentos.id
union all
select
ordens_servico.id,
ordens_servico.id_empresa,
'ordem_servico'as tipo,
ordens_servico.data_aprovacao,
month(ordens_servico.data_aprovacao) as mes,
year(ordens_servico.data_aprovacao) as ano,
sum(itens_ordem_servico.quantidade) as quantidade,
sum(itens_ordem_servico.preco_unidade) as preco_unidade,
sum(itens_ordem_servico.desconto) as desconto,
sum(itens_ordem_servico.preco_unidade_desconto) as preco_unidade_desconto,
ordens_servico.desconto as desconto_ordem_servico,
sum(itens_ordem_servico.preco_total) as preco_total,
((select sum(preco_total) from itens_ordem_servico where id_ordem_servico = ordens_servico.id and tipo = 'produto')) as total_sem_desconto,
(
(select sum(preco_total) from itens_ordem_servico where id_ordem_servico = ordens_servico.id and tipo = 'produto') -
(((select sum(preco_total) from itens_ordem_servico where id_ordem_servico = ordens_servico.id and tipo = 'produto')*ordens_servico.desconto)/100)
) as total_com_desconto
from ordens_servico
inner join itens_ordem_servico
on ordens_servico.id = itens_ordem_servico.id_ordem_servico
where itens_ordem_servico.tipo = 'produto'
and ordens_servico.id_situacao in(3,5,6)
group by ordens_servico.id
union all
/*
select
nfe.id,
nfe.id_empresa,
'nfe'as tipo,
nfe.data_emissao,
month(nfe.data_emissao) as mes,
year(nfe.data_emissao) as ano,
itens_nfe.descricao as nome,
itens_nfe.id_item,
coalesce(itens_nfe.quantidade_tributavel) as quantidade,
coalesce(itens_nfe.valor_unitario_tributavel, 0) as preco_unidade,
null,
coalesce(itens_nfe.valor_unitario_tributavel, 0) as preco_unidade_desconto,
(valor_unitario_tributavel*quantidade_tributavel) as preco_total
from nfe
inner join itens_nfe
on nfe.id = itens_nfe.id_nfe
where itens_nfe.tipo_item = 'produto'
and nfe.id_situacao = 3
and nfe.incluir_no_faturamento = 's'
*/
select
nfe.id,
nfe.id_empresa,
'nfe'as tipo,
nfe.data_emissao,
month(nfe.data_emissao) as mes,
year(nfe.data_emissao) as ano,
null,
(nfe.valor_total-nfe.valor_frete) as preco_unidade,
null,
(nfe.valor_total-nfe.valor_frete) as preco_unidade_desconto,
null,
(nfe.valor_total-nfe.valor_frete) as preco_total,
(nfe.valor_total-nfe.valor_frete) as total_sem_desconto,
(nfe.valor_total-nfe.valor_frete) as total_com_desconto
from nfe
where nfe.id_situacao = 3
and nfe.incluir_no_faturamento = 's'
group by nfe.id
union all
select
nfse.id,
nfse.id_empresa,
'nfse'as tipo,
nfse.data_emissao,
month(nfse.data_emissao) as mes,
year(nfse.data_emissao) as ano,
null as quantidade,
(nfse.valor_servicos-nfse.valor_deducoes) as preco_unidade,
null,
(nfse.valor_servicos-nfse.valor_deducoes) as preco_unidade_desconto,
(nfse.valor_servicos-nfse.valor_deducoes) as preco_total,
null,
(nfse.valor_servicos-nfse.valor_deducoes) as total_sem_desconto,
(nfse.valor_servicos-nfse.valor_deducoes) as total_com_desconto
from nfse
where
nfse.id_situacao = 3
and nfse.incluir_no_faturamento = 's'
group by nfse.id
que, quando coloco no banco online fica da seguinte forma:
SELECT
`orcamentos`.`id` AS `id`,
`orcamentos`.`id_empresa` AS `id_empresa`,
'orcamento' AS `tipo`,
`orcamentos`.`data_aprovacao` AS `data_aprovacao`,
MONTH ( `orcamentos`.`data_aprovacao` ) AS `mes`,
YEAR ( `orcamentos`.`data_aprovacao` ) AS `ano`,
sum( `itens_orcamentos`.`quantidade` ) AS `quantidade`,
sum( `itens_orcamentos`.`preco_unidade` ) AS `preco_unidade`,
sum( `itens_orcamentos`.`desconto` ) AS `desconto`,
sum( `itens_orcamentos`.`preco_unidade_desconto` ) AS `preco_unidade_desconto`,
`orcamentos`.`desconto_orcamento` AS `desconto_orcamento`,
sum( `itens_orcamentos`.`preco_total` ) AS `preco_total`,
`orcamentos`.`total_outros_itens` + `orcamentos`.`outras_despesas` + ( SELECT sum( `itens_orcamentos`.`preco_total` ) FROM `itens_orcamentos` WHERE `itens_orcamentos`.`id_orcamento` = `orcamentos`.`id` ) AS `total_sem_desconto`,
`orcamentos`.`total_outros_itens` + `orcamentos`.`outras_despesas` + ( SELECT sum( `itens_orcamentos`.`preco_total` ) FROM `itens_orcamentos` WHERE `itens_orcamentos`.`id_orcamento` = `orcamentos`.`id` ) - (
`orcamentos`.`total_outros_itens` + `orcamentos`.`outras_despesas` + ( SELECT sum( `itens_orcamentos`.`preco_total` ) FROM `orcamentos` WHERE `itens_orcamentos`.`id_orcamento` = `orcamentos`.`id` )
) * `orcamentos`.`desconto_orcamento` / 100 AS `total_com_desconto`
FROM
( orcamentos JOIN itens_orcamentos ON ( orcamentos.id = itens_orcamentos.id_orcamento ) )
WHERE
orcamentos.id_situacao IN ( 3, 5, 6 )
GROUP BY
orcamentos.id UNION ALL
SELECT
`ordens_servico`.`id` AS `id`,
`ordens_servico`.`id_empresa` AS `id_empresa`,
'ordem_servico' AS `tipo`,
`ordens_servico`.`data_aprovacao` AS `data_aprovacao`,
MONTH ( `ordens_servico`.`data_aprovacao` ) AS `mes`,
YEAR ( `ordens_servico`.`data_aprovacao` ) AS `ano`,
sum( `itens_ordem_servico`.`quantidade` ) AS `quantidade`,
sum( `itens_ordem_servico`.`preco_unidade` ) AS `preco_unidade`,
sum( `itens_ordem_servico`.`desconto` ) AS `desconto`,
sum( `itens_ordem_servico`.`preco_unidade_desconto` ) AS `preco_unidade_desconto`,
`ordens_servico`.`desconto` AS `desconto_ordem_servico`,
sum( `itens_ordem_servico`.`preco_total` ) AS `preco_total`,
( SELECT sum( `itens_ordem_servico`.`preco_total` ) FROM `itens_ordem_servico` WHERE `itens_ordem_servico`.`id_ordem_servico` = `ordens_servico`.`id` AND `itens_ordem_servico`.`tipo` = 'produto' ) AS `total_sem_desconto`,
( SELECT sum( `itens_ordem_servico`.`preco_total` ) FROM `itens_ordem_servico` WHERE `itens_ordem_servico`.`id_ordem_servico` = `ordens_servico`.`id` AND `itens_ordem_servico`.`tipo` = 'produto' ) - ( SELECT sum( `itens_ordem_servico`.`preco_total` ) FROM `itens_ordem_servico` WHERE `itens_ordem_servico`.`id_ordem_servico` = `ordens_servico`.`id` AND `itens_ordem_servico`.`tipo` = 'produto' ) * `ordens_servico`.`desconto` / 100 AS `total_com_desconto`
FROM
( ordens_servico JOIN itens_ordem_servico ON ( ordens_servico.id = itens_ordem_servico.id_ordem_servico ) )
WHERE
itens_ordem_servico.tipo = 'produto'
AND ordens_servico.id_situacao IN ( 3, 5, 6 )
GROUP BY
ordens_servico.id UNION ALL
SELECT
`nfe`.`id` AS `id`,
`nfe`.`id_empresa` AS `id_empresa`,
'nfe' AS `tipo`,
`nfe`.`data_emissao` AS `data_emissao`,
MONTH ( `nfe`.`data_emissao` ) AS `mes`,
YEAR ( `nfe`.`data_emissao` ) AS `ano`,
NULL AS `NULL`,
`nfe`.`valor_total` - `nfe`.`valor_frete` AS `preco_unidade`,
NULL AS `NULL`,
`nfe`.`valor_total` - `nfe`.`valor_frete` AS `preco_unidade_desconto`,
NULL AS `NULL`,
`nfe`.`valor_total` - `nfe`.`valor_frete` AS `preco_total`,
`nfe`.`valor_total` - `nfe`.`valor_frete` AS `total_sem_desconto`,
`nfe`.`valor_total` - `nfe`.`valor_frete` AS `total_com_desconto`
FROM
nfe
WHERE
nfe.id_situacao = 3
AND nfe.incluir_no_faturamento = 's'
GROUP BY
nfe.id UNION ALL
SELECT
`nfse`.`id` AS `id`,
`nfse`.`id_empresa` AS `id_empresa`,
'nfse' AS `tipo`,
`nfse`.`data_emissao` AS `data_emissao`,
MONTH ( `nfse`.`data_emissao` ) AS `mes`,
YEAR ( `nfse`.`data_emissao` ) AS `ano`,
NULL AS `quantidade`,
`nfse`.`valor_servicos` - `nfse`.`valor_deducoes` AS `preco_unidade`,
NULL AS `NULL`,
`nfse`.`valor_servicos` - `nfse`.`valor_deducoes` AS `preco_unidade_desconto`,
`nfse`.`valor_servicos` - `nfse`.`valor_deducoes` AS `preco_total`,
NULL AS `NULL`,
`nfse`.`valor_servicos` - `nfse`.`valor_deducoes` AS `total_sem_desconto`,
`nfse`.`valor_servicos` - `nfse`.`valor_deducoes` AS `total_com_desconto`
FROM
nfse
WHERE
nfse.id_situacao = 3
AND nfse.incluir_no_faturamento = 's'
GROUP BY
nfse.id
Não sei se a diferença tem haver com o problema, que é o seguinte:
- ao puxar um registro x no banco local, o resultado retornado é o seguinte:
- id | id_empresa | tipo | data_aprovacao | mes | ano | quantidade | preco_unidade | desconto | preco_unidade_descont | desconto_orcamento | preco_total | total_sem_desconto
- 181 1 orcamento 2022-10-04 00:00:00 10 2022 67,00 319,05 0,00 319,05 5,00 1350,90 1350,90 1283,355000
- ao puxar o mesmo registro no banco online, o resultado retornado é:
- 181 1 orcamento 2022-10-04 00:00:00 10 2022 67,00 319,05 0,00 319,05 5,00 1350,90 1350,90 1318,649994
a ultima coluna está apresentando uma discrepência de mais ou menos 35 e não consegui encontrar nada a respeito
obs: ambos os bancos são idênticos, os dados são idênticos.
Discussão (1)
Carregando comentários...