erro ao cria uma view postgres
CREATE VIEW public.VIEW_SPED_C370 AS ( select nd.ID_NF_CABECALHO AS ID_NF_CABECALHO, nc.DATA_EMISSAO AS DATA_EMISSAO, nd.ID_PRODUTO AS ID_PRODUTO, nd.ITEM AS ITEM, p.ID_UNIDADE_PRODUTO AS ID_UNIDADE_PRODUTO, nd.QUANTIDADE AS QUANTIDADE, nd.VALOR_TOTAL AS VALOR_TOTAL, nd.CST AS CST, nd.DESCONTO AS DESCONTO from ((ecf_nota_fiscal_detalhe nd JOIN ecf_nota_fiscal_cabecalho nc) JOIN produto p) where ((nd.ID_NF_CABECALHO = nc.ID) AND (nd.ID_PRODUTO = p.ID)) )
John Lima
Curtidas 0
Respostas
Ronaldo Lanhellas
29/12/2014
Poste o erro.
GOSTEI 0
Marisiana Battistella
29/12/2014
Qual é o erro que está ocorrendo?
GOSTEI 0
John Lima
29/12/2014
ERRO: erro de sintaxe em ou próximo a ")"
LINE 16: ...iscal_detalhe nd JOIN ecf_nota_fiscal_cabecalho nc) JOIN pro...
^
********** Error **********
ERRO: erro de sintaxe em ou próximo a ")"
SQL state: 42601
Character: 477
LINE 16: ...iscal_detalhe nd JOIN ecf_nota_fiscal_cabecalho nc) JOIN pro...
^
********** Error **********
ERRO: erro de sintaxe em ou próximo a ")"
SQL state: 42601
Character: 477
GOSTEI 0
Marisiana Battistella
29/12/2014
O JOIN entre as tabelas não estão corretos...
create
view public.VIEW_SPED_C370
as
(
select nd.ID_NF_CABECALHO AS ID_NF_CABECALHO,
nc.DATA_EMISSAO AS DATA_EMISSAO,
nd.ID_PRODUTO AS ID_PRODUTO,
nd.ITEM AS ITEM,
p.ID_UNIDADE_PRODUTO AS ID_UNIDADE_PRODUTO,
nd.QUANTIDADE AS QUANTIDADE,
nd.VALOR_TOTAL AS VALOR_TOTAL,
nd.CST AS CST,
nd.DESCONTO AS DESCONTO
from ecf_nota_fiscal_detalhe nd
join ecf_nota_fiscal_cabecalho nc
on nd.ID_NF_CABECALHO = nc.ID
join produto p
on nd.ID_PRODUTO = p.ID
)
GOSTEI 0
Jair N.
29/12/2014
Bom Dia veja os relacionamentos aninhados, está faltando "ON" nos dois relacionamentos "JOIN" e não entendi o porque ao criar a VIEW você a colocou entre "parenteses" !
GOSTEI 0
John Lima
29/12/2014
Jair eu realmente uso sempre mais o on em vez da clausula where, porem quando em tenho mais de uma condição eu uso o where.
GOSTEI 0
John Lima
29/12/2014
Mariziana também costumo usar dessa forma, porem o schema foi passado pelo professor que também foi pego na sefaz, olha todo a documentação vejo que as tabelas tanto da NFE e SPED não tem relacionamento.
GOSTEI 0
Marisiana Battistella
29/12/2014
Você quer dizer que não existe Foreign Key entre as tabelas?
GOSTEI 0
John Lima
29/12/2014
isso não existir chaves estrageiras entre as tabelas de venda e produto, para poder funcionar e eu manda o trabalho eu adcioneis as contrains e criei a view dessa forma :
eu uso esse procedimento em tabelas de consultas pois como a tabela é muito grande acaba deixando a busca lenta ao abri o registro ex:
NCM e CEP
CREATE OR REPLACE VIEW view_sped_c370 AS
SELECT nd.id_nf_cabecalho,
nc.data_emissao,
nd.id_produto,
nd.item,
p.id_unidade_produto,
nd.quantidade,
nd.valor_total,
nd.cst,
nd.desconto
FROM ecf_nota_fiscal_detalhe nd
JOIN ecf_nota_fiscal_cabecalho nc ON nd.id_nf_cabecalho = nc.id
JOIN produto p ON nd.id_produto = p.id;
eu uso esse procedimento em tabelas de consultas pois como a tabela é muito grande acaba deixando a busca lenta ao abri o registro ex:
NCM e CEP
GOSTEI 0
Marisiana Battistella
29/12/2014
Isso é um trabalho de faculdade?
GOSTEI 0
John Lima
29/12/2014
do IFIS o professor pediu que sugerir um tema e optamos para implementação do SPED, porem ha ideia é colocar pra funcionar, só que não concordo com muita coisa que foi definido pelo gorveno
GOSTEI 0
Marisiana Battistella
29/12/2014
Mesmo assim não entendo porque não existia uma ligação entre as tabelas.
O SPED fiscal é alimentado com os dados da base do cliente e o arquivo deve ter a estrutura que o governo solicita, mas isso não interfere na estrutura do banco de dados.
O SPED fiscal é alimentado com os dados da base do cliente e o arquivo deve ter a estrutura que o governo solicita, mas isso não interfere na estrutura do banco de dados.
GOSTEI 0
John Lima
29/12/2014
Realmente concordo com você eu no meu banco adicionei a ligação pois o mesmo não tinha e modifiquei o modelo da view.
GOSTEI 0
Marisiana Battistella
29/12/2014
Sem querer ser chata em perguntar....
Você não concorda com o que? Poderia citar um exemplo?
Você não concorda com o que? Poderia citar um exemplo?
GOSTEI 0
Jair N.
29/12/2014
Boa Tarde, mesmo assim sem a cláusula "ON" após os "JOIN" não vai funcionar, a não ser que seja "NATURAL JOIN" neste caso o banco usa a "foreign key" como relacional com "WHERE" remova os "JOINS" . mesmo com tipo de relacionamentos aninhados é necessário identificar "o que relaciona com quem"!
GOSTEI 0
Marisiana Battistella
29/12/2014
Bem lembrado Jair!
GOSTEI 0
John Lima
29/12/2014
Marisiana fiz uma pesquisa a fundo sobre a modelagem e cheguei a seguinte conclusão, as tabelas que pertencem ao ecf, são do tipo OLAP elas iram receber dados dos terminais e serviram apenas para consultas,já no banco referente a frente de caixa elas possuem seus relacionamentos perfeitamente.
GOSTEI 0
Marisiana Battistella
29/12/2014
Sabia que existia uma boa justificativa!
Por não existir relacionamentos entre as tabelas, pode ser um banco NoSQL...
Por não existir relacionamentos entre as tabelas, pode ser um banco NoSQL...
GOSTEI 0
John Lima
29/12/2014
No primeiro momento também achei estranho, mais ao analisar sprint backlog entendi o porque ter feito dessa maneira
GOSTEI 0
Marisiana Battistella
29/12/2014
Esse tipo de banco de dados é utilizado para análise de dados com o objetivo de gerar informações que auxiliem nas tomadas de decisões.
GOSTEI 0