Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Adilson_Web_2007

registro duplicado

Recommended Posts

Olá pessoal estou fazendo um select e ele está duplicando os registro.

 

 

SELECT razao_social, cnpj, numero_ato, data_registro, data_validade, numero_di, imp_ncm_import, imp_descricao, imp_quantidade, imp_valor_embarque, imp_unidade

FROM cadastro_ato, import_di, importacao

WHERE numero_ato = '20050293303'

 

Ja usei o distinct ms não resolveu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal mudei algumas coisa do select e continua com registro duplicado

 

 

SELECT a.razao_social, a.razao_social,a.cnpj,a.numero_ato,p.numero_di,p.peso,p.data_di,
i.imp_valor_embarque,i.imp_unidade,i.valor_total
FROM cadastro_ato a, import_di p,importacao i
WHERE a.numero_ato = '20050293303' and p.numero_ac='20050293303' and i.numero_ac='20050293303'
GROUP BY a.numero_ato, p.numero_di, i.numero_ac

 

Tabelas

 

CREATE TABLE IF NOT EXISTS `cadastro_ato` (
  `numero_ato` varchar(255) NOT NULL,
  `data_registro` date NOT NULL,
  `data_validade` date NOT NULL,
  `cnpj` varchar(20) NOT NULL,
  `razao_social` text NOT NULL,
  `modalidade` varchar(11) NOT NULL,
  `tipo_ato` varchar(40) NOT NULL,
  `frete` varchar(255) NOT NULL,
  `seguro` varchar(255) NOT NULL,
  PRIMARY KEY (`numero_ato`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE IF NOT EXISTS `importacao` (
  `imp_id` int(11) NOT NULL AUTO_INCREMENT,
  `numero_ac` varchar(255) NOT NULL,
  `imp_ncm_import` varchar(255) NOT NULL,
  `imp_item_sequencial` varchar(255) NOT NULL,
  `imp_descricao` text NOT NULL,
  `imp_unidade` varchar(255) NOT NULL,
  `imp_quantidade` decimal(10,2) NOT NULL,
  `imp_perda` varchar(255) NOT NULL,
  `imp_valor_embarque` decimal(10,2) NOT NULL,
  `valor_total` decimal(10,2) DEFAULT NULL,
  PRIMARY KEY (`imp_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=13;

 

CREATE TABLE IF NOT EXISTS `import_di` (
  `numero_ac` varchar(255) NOT NULL,
  `numero_di` varchar(255) NOT NULL,
  `item_seq` varchar(255) NOT NULL,
  `peso` decimal(10,2) NOT NULL,
  `valor` decimal(10,2) NOT NULL,
  `data_di` date NOT NULL,
  `valor_us` decimal(10,2) DEFAULT NULL,
  PRIMARY KEY (`numero_di`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
ele está retormando assim:

 

razao_social  razao_social  cnpj  numero_ato  numero_di  peso data_di  imp_valor_embarque  imp_unidade valor_total  
MOMENTIVE PERFORMANCE MOMENTIVE PERFORMANCE 05701847000117 20050293303 06/0259206-7 29720.00 2006-03-07 469107.00 QUILOGRAMA NULL 
MOMENTIVE PERFORMANCE MOMENTIVE PERFORMANCE 05701847000117 20050293303 06/0400290-9 60800.00 2006-04-07 469107.00 QUILOGRAMA NULL 
MOMENTIVE PERFORMANCE MOMENTIVE PERFORMANCE 05701847000117 20050293303 06/0996484-9 60800.00 2006-08-22 469107.00 QUILOGRAMA NULL 
MOMENTIVE PERFORMANCE MOMENTIVE PERFORMANCE 05701847000117 20050293303 06/1128080 14479.00 2006-09-20 469107.00 QUILOGRAMA NULL

Eu não sei mais o que fazer

Compartilhar este post


Link para o post
Compartilhar em outros sites

o group by não está te servindo para nada, só ocupa espaço.

está faltando você relacionar as tabelas com inner join

 

SELECT a.razao_social,a.cnpj,a.numero_ato,p.numero_di,p.peso,p.data_di,
i.imp_valor_embarque,i.imp_unidade,i.valor_total
FROM cadastro_ato a, 
inner join import_di p on (a.numero_ato = p.numero_ac)
inner join importacao i on (a.numero_ato = i.numero_ac)
WHERE a.numero_ato = '20050293303'
tenta assim

 

 

 

editando.....

numero_di

o numero_di é diferente em cada resultado.

você vai ter que definir qual você quer ou vai trazer todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

deu esse erro aqui

 

[MySQL][ODBC 3.51 Driver][mysqld-5.1.22-rc-community]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'inner join import_di p on (a.numero_ato = p.numero_ac) inner join importacao i o' at line 1

Ha quero trazer todos DI

Compartilhar este post


Link para o post
Compartilhar em outros sites

FROM cadastro_ato a,

faltou tirar a vírgula

 

Ha quero trazer todos DI

aí você vai trazer os numero_ato da forma que você está trazendo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu fiz como você falou tirei a virgula e não deu erro, mas continua trazendo os registros duplicados.

 

 

segue:

 

SELECT a.razao_social,a.cnpj,a.numero_ato,p.numero_di,p.peso,p.data_di,
i.imp_valor_embarque,i.imp_unidade,i.valor_total
FROM cadastro_ato a 
inner join import_di p on (a.numero_ato = p.numero_ac)
inner join importacao i on (a.numero_ato = i.numero_ac)
WHERE a.numero_ato = '20050293303'

Compartilhar este post


Link para o post
Compartilhar em outros sites

não é que estão duplicados,

o numero_di é diferente

Compartilhar este post


Link para o post
Compartilhar em outros sites

posta aí o resultado que a consulta está trazendo

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele ta retormando assim

 

 

06/0259206-7 7/3/2006 39072090 POLIOXIALQUILENO AMINA XTJ-502 29.720,00000 QUILOGRAMA 469.107,00

06/0259206-7 7/3/2006 39100019 FLUIDO DE SILICONE EPOXI MODIFICADO Y-14135 29.720,00000 QUILOGRAMA 590.203,67

06/0400290-9 7/4/2006 39072090 POLIOXIALQUILENO AMINA XTJ-502 60.800,00000 QUILOGRAMA 469.107,00

06/0400290-9 7/4/2006 39100019 FLUIDO DE SILICONE EPOXI MODIFICADO Y-14135 60.800,00000 QUILOGRAMA 590.203,67

06/0996484-9 22/8/2006 39072090 POLIOXIALQUILENO AMINA XTJ-502 60.800,00000 QUILOGRAMA 469.107,00

06/0996484-9 22/8/2006 39100019 FLUIDO DE SILICONE EPOXI MODIFICADO Y-14135 60.800,00000 QUILOGRAMA 590.203,67

06/1128080 20/9/2006 39072090 POLIOXIALQUILENO AMINA XTJ-502 14.479,00000 QUILOGRAMA 469.107,00

06/1128080 20/9/2006 39100019 FLUIDO DE SILICONE EPOXI MODIFICADO Y-14135 14.479,00000 QUILOGRAMA 590.203,67

Compartilhar este post


Link para o post
Compartilhar em outros sites

dessa forma não tem dado que esteja sendo repetido.

Não tem nenhuma linha identica a outra.

 

o que é que você acha que está repetindo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

vou colocar o que esta dentro de cada tabela para você ter uma ideia.

 

 

Esses dados são da import_di

 

20050293303 06/0259206-7 11 29720.00 320555.93 2006-03-07 10.00

20050293303 06/0400290-9 12 60800.00 298493.70 2006-04-07 NULL

20050293303 06/0996484-9 12 60800.00 292596.49 2006-08-22 NULL

20050293303 06/1128080 11 14479.00 156785.30 2006-09-20 NUL

 

 

importacao

 

11 20050293303 39072090 001 POLIOXIALQUILENO AMINA XTJ-502 QUILOGRAMA 43437.00 3% 469107.00 NULL

12 20050293303 39100019 002 FLUIDO DE SILICONE EPOXI MODIFICADO Y-14135 QUILOGRAMA 121600.00 3% 590203.67 NULL

 

cadastrar_ato

 

20050293303 2006-03-08 2008-03-07 05701847000117 nome da empresa SUSPENSÃO COMUM 38.460,55 4.357,17

 

ai eu preciso fazer um relatorio para trazer todas essas informações associadas

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.