O IDEAGRI possui uma ferramenta que permite a importação de novos animais utilizando planilhas. Como sabemos que eventualmente nossos clientes podem adquirir animais de produtores que também são usuários do sistema IDEAGRI, decidimos criar roteiros de importação para facilitar a migração de animais nestes casos, fazendo o uso dessa valiosa ferramenta de importação.

 

 

O processo será realizado com a utilização de consultas SQL. Clique aqui para acessar um vídeo que fornece mais detalhes sobre as Consultas SQL e sua forma de utilização.

As consultas deverão ser utilizadas no banco de origem dos animais. Após a execução e geração dos arquivos, eles poderão ser importados para o banco de destino. Abaixo, separamos cada etapa que deve ser realizada para que a importação possa ser realizada.

É importante notar que, na maioria dos casos, edições no corpo da consulta SQL serão necessárias. Você encontrará, em cada etapa, instruções relacionadas às edições necessárias.

A exportação dos arquivos gerados pelas consultas SQL começará no passo 3. Recomendamos que, ao exportar os arquivos, o nome informado seja equivalente ao número do passo que você está executando. Então, no passo 3, por exemplo, o nome do arquivo deverá ser '3', e assim por diante. Como os arquivos deverão ser importados na ordem que são gerados, essa nomenclatura facilitará o processo de importação posteriormente.

 

Detalhes importantes:

  • As tentativas do tipo "Transferência de embrião" serão importadas como coberturas, utilizando a raça do reprodutor do cruzamento da TE.
  • As informações e lançamentos de 'Cio não inseminado', 'Programações IATF/TETF', 'Protocolos hormonais', 'Inseminadores', 'Coleta FIV/TE',  'Exame ginecológico' e 'Recomendação de acasalamento', atualmente, não serão importadas.

 

Sumário

Introdução

Passo 1 – Obter a lista de cdanimais dos animais que serão importados e separar com “,”

Passo 2 – Obter a lista de reprodutores que foram usados na reprodução destes animais.

Passo 3 – Obter a lista da terceira geração [Pai do Pai da Mãe (Bisavô materno) por parte de mãe] dos animais e reprodutores e importar

Passo 4 – Obter a lista da segunda geração [Pai da Mãe (Avô materno)] dos animais e reprodutores e importar

Passo 5 – Obter mães dos animais e reprodutores e importar

Passo 6 - Obter pais dos animais e reprodutores e importar

Passo 7 –  Obter dados apenas dos reprodutores e importar

Passo 8 – Obter dados apenas dos animais, sem reprodução e importar

Passo 9– Obter os dados reprodutivos e importar

Passo 10– Obter os controles leiteiro e importar

Passo 10– Obter os controles leiteiro e importar

Passo 11 – Obter as pesagens corporais e importar

12

 

Introdução

Para importar a genealogia, se você deseja 3 gerações:


Geração 1

Pai

Mãe

Geração 2

Pai do Pai (Avô paterno)

Mãe do Pai (Avó paterna)

Pai da Mãe (Avô materno)

Mãe da Mãe (Avó materno)

Geração 3

Pai do Pai do Pai (Bisavô paterno) por parte de pai

Mãe do Pai do Pai (Bisavó paterna) por parte de pai

Pai da Mãe do Pai (Bisavô materno) por parte de pai

Mãe da Mãe do Pai (Bisavó paterna) por parte de pai

Pai do Pai da Mãe (Bisavô materno) por parte de mãe

Mãe do Pai da Mãe (Bisavó materna) por parte de mãe

Pai da Mãe da Mãe (Bisavô materno) por parte de mãe

Mãe da Mãe da Mãe (Bisavó materna) por parte de mãe

         

É importante obter, na fazenda de origem dos animais, o cdanimal dos animais que serão importados, pois este critério de busca vai facilitar todas as demais ações.

Importaremos, a genealogia em cascata, para que o preenchimento ocorra:

1) Geração 3
2) Geração 2
3) Geração 1

Observações importantes:

  • Utilizaremos uma concatenação para evitar conflitos com animais já existentes no banco de dados de destino. Nas consultas, colocamos o código de exemplo '_ZZZ' . Ele deverá ser substituído para uma abreviação do nome da Fazenda de origem. Se ela se chama Santa Clara, por exemplo, basta trocar _ZZZ por _SCL).
  • O número do animal será colocado, também, no campo 'Nome', quando não existir nome informado no cadastro do banco de origem.
  • No processo de importação destas genealogias vamos contemplar, também, a genealogia dos reprodutores que tiverem sido utilizados na reprodução das matrizes importadas.

Passo 1 – Obter a lista de cdanimais dos animais que serão importados e separar com “,”

Esta é a SQL que deverá ser utilizada:

select cdanimal from animal where numero in ('1001','1002','1003')

 

Coloque, onde está marcado de verde, os números dos animais que deverão ser buscados. Mantenha as aspas simples no início e fim de cada número, e mantenha, também, as vírgulas para separar cada animal. Os dados destacados em verde correspondem aos números dos animais e devem ser trocados pela sua relação de números. Os exemplos acima são meramente ilustrativos. 

Coloque a sua relação e execute a consulta para obter a lista dos cdsanimais na fazenda de origem. Depois de gerar a lista, separe os cdanimais obtidos por vírgula. Neste caso, não será necessário utilizar as aspas simples.

  • Exemplo: 55,99,200

Esses cdanimais serão utilizados em outras consultas em etapas posteriores. Sempre que você ver a cor verde, é um sinal para substituir o conteúdo marcado por ela pelos cdsanimais obtidos nesse passo aqui (passo 1).

Recomendamos que seja criado um arquivo (um bloco de notas, por exemplo) para que você possa ir armazenando este tipo de informação nele.

 


 

Passo 2 – Obter a lista de reprodutores que foram utilizados em tentativas destes animais 

Neste passo, teremos duas consultas diferentes: uma que buscará os sêmens e outra que buscará os touros utilizados.

Sêmens:

Select distinct cdreprodutor from reproducao where cdanimal in (LISTA DE CDSANIMAIS DOS ANIMAIS QUE SERÃO IMPORTADOS) and cdreprodutor is not null and cdtiporeproducao = 1

 


Touros:

select distinct cdreprodutor from reproducao where cdanimal in (LISTA DE CDSANIMAIS DOS ANIMAIS QUE SERÃO IMPORTADOS) and cdreprodutor is not null and cdtiporeproducao = 2

 

As consultas deverão ser executadas separadamente. Coloque, onde está marcado de verde, os cdsanimais obtidos no passo 1. Desta forma, a consulta buscará os códigos dos reprodutores. 

  • Exemplo:5394,5396,5404,2254,3568,5484

Vamos, então, juntar os cdsanimais dos touros, animais e sêmens, separando-os por vírgula:

55,99,200,5394,5396,5404,2254,3568,5484

 

LISTA DE CDSANIMAIS DOS ANIMAIS QUE SERÃO IMPORTADOS, LISTA DE CDSANIMAIS DOS SÊMENSLISTA DE CDSANIMAIS DOS TOUROS

 
Esses códigos serão utilizados em outras consultas em etapas posteriores. Sempre que você ver a cor amarela, é um sinal para substituir o conteúdo marcado por ela pelos cdsanimais dos touros. Já a cor azul representará os sêmens. Eventualmente, você precisará indicar os cdsanimais dos reprodutores e dos animais ao mesmo tempo. Uma dica seria armazenar quatro variáveis de lista:
 
  • Lista de cdsanimais dos animais
  • Lista de cdsanimais sêmens
  • Lista de cdsanimais touros
  • Lista de cdsanimais dos reprodutores (touros e sêmens)
  • Lista de cdsanimais geral

 

Com essa lista em mãos, os próximos passos poderão ser realizados com mais rapidez.


 

Passo 3 – Obter a lista da terceira geração [Pai do Pai da Mãe (Bisavô materno) por parte de mãe] dos animais e reprodutores

Neste passo, já temos a indicação da sigla que criamos para a importação, conforme vimos na Introdução desta dica. Desta maneira, antes de rodar a consulta, altere a marcação '_ZZZ', informando a sigla que você definiu.

Além disso, no fim da consulta, temos a indicação 'LISTA GERAL'. Isso quer dizer que, nessa consulta, indicaremos todos os cdsanimais que obtivemos até agora (animais, touros e sêmens).

O arquivo gerado neste passo deverá ser importado utilizando o tipo de importação 'Cadastro de animal externo'.

select distinct
paipaimae.cdanimal || '_ZZZ' as numero,
coalesce(paipaimae.nome, paipaimae.numero) as nome,
coalesce(paipaimae.nomecompleto, paipaimae.nome, paipaimae.numero) as nome_completo,
'M' as sexo,
(select grausangue from sp_calculagrausangue(paipaimae.cdanimal)) as grau_sangue
from
animal an
left join animal mae on mae.cdanimal = an.cdmae
left join animal pai on pai.cdanimal = an.cdpai
left join animal paimae on paimae.cdanimal = mae.cdpai
left join animal maemae on maemae.cdanimal = mae.cdmae
left join animal maepaimae on maepaimae.cdanimal = paimae.cdmae
left join animal paipaimae on paipaimae.cdanimal = paimae.cdpai
left join animal maemaemae on maemaemae.cdanimal = maemae.cdmae
left join animal paimaemae on paimaemae.cdanimal = maemae.cdpai
left join animal paipai on paipai.cdanimal = pai.cdpai
left join animal maepai on maepai.cdanimal = pai.cdmae
left join animal paipaipai on paipaipai.cdanimal = paipai.cdpai
left join animal maepaipai on maepaipai.cdanimal = paipai.cdmae
left join animal maemaepai on maemaepai.cdanimal = maepai.cdmae
left join animal paimaepai on paimaepai.cdanimal = maepai.cdpai
where
((paipaimae.numero is not null) and (paipaimae.numero<>'')) and an.cdanimal in (LISTA GERAL)

 

 

Exporte o arquivo gerado e mantenha o formato do arquivo como *.csv.


 

Passo 4 – Obter a lista da segunda geração [Pai da Mãe (Avô materno)] dos animais e reprodutores e importar

Neste passo, também temos a indicação da sigla que criamos para a importação, conforme vimos na Introdução desta dica. Desta maneira, antes de rodar a consulta, altere a marcação '_ZZZ', informando a sigla que você definiu.

Além disso, no fim da consulta, temos a indicação 'LISTA GERAL'. Isso quer dizer que, nessa consulta, indicaremos todos os cdsanimais que obtivemos até agora (animais, touros e sêmens).

O arquivo gerado neste passo deverá ser importado utilizando o tipo de importação 'Cadastro de animal externo'.

Importante: se o sistema validar que o animal já existe, é por que foi importado na etapa anterior. Neste caso, exclua o animal repetido no sistema e, depois, prossiga com a importação.

 

select distinct
paimae.cdanimal || '_ZZZ' as numero,
coalesce(paimae.nome, paimae.numero) as nome,
coalesce(paimae.nomecompleto, paimae.nome, paimae.numero) as nome_completo,
'M' as sexo,
(select grausangue from sp_calculagrausangue(paimae.cdanimal)) as grau_sangue,
paipaimae. cdanimal || '_ZZZ' as numeropai
from
animal an
left join animal mae on mae.cdanimal = an.cdmae
left join animal pai on pai.cdanimal = an.cdpai
left join animal paimae on paimae.cdanimal = mae.cdpai
left join animal maemae on maemae.cdanimal = mae.cdmae
left join animal maepaimae on maepaimae.cdanimal = paimae.cdmae
left join animal paipaimae on paipaimae.cdanimal = paimae.cdpai
left join animal maemaemae on maemaemae.cdanimal = maemae.cdmae
left join animal paimaemae on paimaemae.cdanimal = maemae.cdpai
left join animal paipai on paipai.cdanimal = pai.cdpai
left join animal maepai on maepai.cdanimal = pai.cdmae
left join animal paipaipai on paipaipai.cdanimal = paipai.cdpai
left join animal maepaipai on maepaipai.cdanimal = paipai.cdmae
left join animal maemaepai on maemaepai.cdanimal = maepai.cdmae
left join animal paimaepai on paimaepai.cdanimal = maepai.cdpai
where
((paimae.numero is not null) and (paimae.numero<>'')) and an.cdanimal in (LISTA GERAL)

 

Exporte o arquivo gerado e mantenha o formato do arquivo como *.csv.

 


  
Passo 5 – Obter mães dos animais e reprodutores e importar

Neste passo, também temos a indicação da sigla que criamos para a importação, conforme vimos na Introdução desta dica. Desta maneira, antes de rodar a consulta, altere a marcação '_ZZZ', informando a sigla que você definiu.

Além disso, no fim da consulta, temos a indicação 'LISTA GERAL'. Isso quer dizer que, nessa consulta, indicaremos todos os cdsanimais que obtivemos até agora (animais, touros e sêmens).

O arquivo gerado neste passo deverá ser importado utilizando o tipo de importação 'Cadastro de animal externo'.

Importante: se o sistema validar que o animal já existe, é por que foi importado na etapa anterior. Neste caso, exclua o animal repetido no sistema e, depois, prossiga com a importação.

select distinct
mae.cdanimal || '_ZZZ' as numero,
coalesce(mae.nome, mae.numero) as nome,
coalesce(mae.nomecompleto, mae.nome, mae.numero) as nome_completo,
'F' as sexo,
(select grausangue from sp_calculagrausangue(mae.cdanimal)) as grau_sangue,
paimae.cdanimal || '_ZZZ' as numeropai
from
animal an
left join animal mae on mae.cdanimal = an.cdmae
left join animal pai on pai.cdanimal = an.cdpai
left join animal paimae on paimae.cdanimal = mae.cdpai
left join animal maemae on maemae.cdanimal = mae.cdmae
left join animal maepaimae on maepaimae.cdanimal = paimae.cdmae
left join animal paipaimae on paipaimae.cdanimal = paimae.cdpai
left join animal maemaemae on maemaemae.cdanimal = maemae.cdmae
left join animal paimaemae on paimaemae.cdanimal = maemae.cdpai
left join animal paipai on paipai.cdanimal = pai.cdpai
left join animal maepai on maepai.cdanimal = pai.cdmae
left join animal paipaipai on paipaipai.cdanimal = paipai.cdpai
left join animal maepaipai on maepaipai.cdanimal = paipai.cdmae
left join animal maemaepai on maemaepai.cdanimal = maepai.cdmae
left join animal paimaepai on paimaepai.cdanimal = maepai.cdpai
where
((mae.numero is not null) and (mae.numero<>'')) and an.cdanimal in (LISTA GERAL)

 

Exporte o arquivo gerado e mantenha o formato do arquivo como *.csv.

 


 
Passo 6 - Obter pais dos animais e reprodutores e importar

Neste passo, também temos a indicação da sigla que criamos para a importação, conforme vimos na Introdução desta dica. Desta maneira, antes de rodar a consulta, altere a marcação '_ZZZ', informando a sigla que você definiu.

Além disso, no fim da consulta, temos a indicação 'LISTA GERAL'. Isso quer dizer que, nessa consulta, indicaremos todos os cdsanimais que obtivemos até agora (animais, touros e sêmens).

O arquivo gerado neste passo deverá ser importado utilizando o tipo de importação 'Cadastro de animal externo'.

Importante: se o sistema validar que o animal já existe, é por que foi importado na etapa anterior. Neste caso, exclua o animal repetido no sistema e, depois, prossiga com a importação.

select distinct
pai.cdanimal || '_ZZZ' as numero,
coalesce(pai.nome, pai.numero) as nome,
coalesce(pai.nomecompleto, pai.nome, pai.numero) as nome_completo,
'M' as sexo,
(select grausangue from sp_calculagrausangue(pai.cdanimal)) as grau_sangue,
null as numeropai,

null as numemae
from
animal an
left join animal mae on mae.cdanimal = an.cdmae
left join animal pai on pai.cdanimal = an.cdpai
left join animal paimae on paimae.cdanimal = mae.cdpai
left join animal maemae on maemae.cdanimal = mae.cdmae
left join animal maepaimae on maepaimae.cdanimal = paimae.cdmae
left join animal paipaimae on paipaimae.cdanimal = paimae.cdpai
left join animal maemaemae on maemaemae.cdanimal = maemae.cdmae
left join animal paimaemae on paimaemae.cdanimal = maemae.cdpai
left join animal paipai on paipai.cdanimal = pai.cdpai
left join animal maepai on maepai.cdanimal = pai.cdmae
left join animal paipaipai on paipaipai.cdanimal = paipai.cdpai
left join animal maepaipai on maepaipai.cdanimal = paipai.cdmae
left join animal maemaepai on maemaepai.cdanimal = maepai.cdmae
left join animal paimaepai on paimaepai.cdanimal = maepai.cdpai
where
((pai.numero is not null) and (pai.numero<>'')) and an.cdanimal in (LISTA GERAL)

 

Exporte o arquivo gerado e mantenha o formato do arquivo como *.csv.


 

Passo 7   Obter dados apenas dos reprodutores e importar 

Agora vamos pegar os dados dos reprodutores para realizar a importação. São duas consultas: uma para os sêmens, que deverá ser importada no tipo de importação 'Cadastro de sêmen', e uma para os touros, que deverá ser importada no tipo de importação 'Cadastro de animal externo'.

Neste passo, também temos a indicação da sigla que criamos para a importação, conforme vimos na Introdução desta dica. Desta maneira, antes de rodar as consultas, altere a marcação '_ZZZ', informando a sigla que você definiu.

Além disso, no fim das consultas, temos a indicação 'LISTA DE CDSANIMAIS DOS REPRODUTORES'. Isso quer dizer que, nessas consultas, indicaremos os cdsanimais dos touros e dos sêmens. Cada consulta filtrará pelo tipo correto de reprodutor.

a) Sêmens

select distinct
an.cdanimal || 'S_ZZZ' as numero,
coalesce(an.nome, an.numero) as nome,
coalesce(an.nomecompleto, an.nome, an.numero) as nome_completo,
(select grausangue from sp_calculagrausangue(an.cdanimal)) as grau_sangue,
an.regassocraca as registro
from
animal an
left join animal mae on mae.cdanimal = an.cdmae
left join animal pai on pai.cdanimal = an.cdpai
left join peso pnas on pnas.cdpeso =
(select first 1 re.cdpeso from peso re where re.cdanimal = an.cdanimal and re.cdtipopeso in (1,2) and re.dtpeso = an.dtnascimento)
left join peso pent on pent.cdpeso =
(select first 1 re.cdpeso from peso re where re.cdanimal = an.cdanimal and re.cdtipopeso = 6 and re.dtpeso = an.dtentfazenda)
left join sp_categoriaanimal(current_date, 'cdanimal = ' || an.cdanimal) spcat on 1 = 1
left join categoria cat on cat.cdcategoria = spcat.cbasica
where an.tipoanimal in ('S', 'I') and an.cdanimal in (LISTA DE CDSANIMAIS DOS REPRODUTORES)

 


b) Touros

select distinct
an.cdanimal || '_ZZZ' as numero
, coalesce(an.nome, an.numero) as nome
, coalesce(an.nomecompleto, an.nome, an.numero) as nome_completo
, 'M' as sexo
, (select grausangue from sp_calculagrausangue(an.cdanimal)) as grau_sangue
, pai.cdanimal || '_ZZZ' as pai
, mae.cdanimal || '_ZZZ' as mae
from
animal an
left join animal mae on mae.cdanimal = an.cdmae
left join animal pai on pai.cdanimal = an.cdpai
left join peso pnas on pnas.cdpeso =
(select first 1 re.cdpeso from peso re where re.cdanimal = an.cdanimal and re.cdtipopeso in (1,2) and re.dtpeso = an.dtnascimento)
left join peso pent on pent.cdpeso =
(select first 1 re.cdpeso from peso re where re.cdanimal = an.cdanimal and re.cdtipopeso = 6 and re.dtpeso = an.dtentfazenda)
left join sp_categoriaanimal(current_date, 'cdanimal = ' || an.cdanimal) spcat on 1 = 1
left join categoria cat on cat.cdcategoria = spcat.cbasica
where an.tipoanimal = 'A' and an.cdanimal in (LISTA DE CDSANIMAIS DOS REPRODUTORES)

 


Exporte os arquivos gerados e mantenha o formato dos arquivos como *.csv. Em relação à nomenclatura do arquivo, coloque 7a no nome do arquivo gerado pela primeira consulta, e 7b no caso do arquivo relacionado à segunda consulta.


 

Passo 8 – Obter dados apenas dos animais, sem reprodução e importar 

Agora vamos pegar os dados dos animais em si para realizar a importação dos mesmos.

Neste passo, também temos a indicação da sigla que criamos para a importação, conforme vimos na Introdução desta dica. Desta maneira, antes de rodar as consultas, altere a marcação '_ZZZ', informando a sigla que você definiu.

Além disso, temos uma outra marcação: 'NOME DO SETOR NO DESTINO'. Neste campo, coloque, entre as aspas simples, o nome do setor no qual o animal será inserido no banco de dados destino.

No fim da consulta, temos a indicação 'LISTA DE CDSANIMAIS DOS ANIMAIS'. Informe, aqui, a lista dos cdsanimais apenas dos animais que serão importados.

select
'NOME DO SETOR NO DESTINO' as setor
, an.numero || '_ZZZ' as numero
, coalesce(an.nome, an.numero) as nome
, coalesce(an.nomecompleto, an.nome, an.numero) as nome_completo
, an.sexo
, (select grausangue from sp_calculagrausangue(an.cdanimal)) as grau_sangue
, an.dtnascimento
, pnas.peso as peso_nascimento
, an.dtentfazenda as dtentrada
, pent.peso as peso_entrada
, an.dtdesmama
, an.dtaptidao
, cat.nome as categoria
, an.brincoeletronico as brinco_eletronico
, NULL as tipo_grupo
, NULL as grupo
, pai.cdanimal || '_ZZZ' as pai
, mae.cdanimal || '_ZZZ' as mae
, an.seriealfa as seriealfa
, an.sufixo as sufixo
, an.prefixo as prefixo
from
animal an
left join animal mae on mae.cdanimal = an.cdmae
left join animal pai on pai.cdanimal = an.cdpai
left join peso pnas on pnas.cdpeso =
(select first 1 re.cdpeso from peso re where re.cdanimal = an.cdanimal and re.cdtipopeso in (1,2) and re.dtpeso = an.dtnascimento)
left join peso pent on pent.cdpeso =
(select first 1 re.cdpeso from peso re where re.cdanimal = an.cdanimal and re.cdtipopeso = 6 and re.dtpeso = an.dtentfazenda)
left join sp_categoriaanimal(current_date, 'cdanimal = ' || an.cdanimal) spcat on 1 = 1
left join categoria cat on cat.cdcategoria = spcat.cbasica
where an.cdanimal in (LISTA DE CDSANIMAIS DOS ANIMAIS)

 

 

 


 

Passo 9– Obter os dados reprodutivos e importar

Buscaremos, agora, os dados reprodutivos dos animais que serão importados.

Neste passo, também temos a indicação da sigla que criamos para a importação, conforme vimos na Introdução desta dica. Desta maneira, antes de rodar as consultas, altere a marcação '_ZZZ', informando a sigla que você definiu.

No fim da consulta, temos a indicação 'LISTA DE CDSANIMAIS DOS ANIMAIS'. Informe, aqui, a lista dos cdsanimais apenas dos animais que serão importados.

IMPORTANTE: Antes de importar, ordene a planilha por número do animaldata de reprodução (da mais antiga para a mais recente).

select
an.numero || '_ZZZ' as numero
, ev.data
, (case when (ev.cdtiporeproducao = 1) then 'IA' else 'COB' end) as tipo_reproducao
, 'Cio natural' as condicaoia
, NULL as inseminador
, ecc.valor as ecc
, NULL as protocolo
, (case when (ev.cdtiporeproducao = 1) then (ev.CDREPRODUTOR || 'S_ZZZ')
when (ev.cdtiporeproducao = 2) and ev.cdreprodutor is not null then (ev.CDREPRODUTOR || '_ZZZ')
when (ev.cdtiporeproducao = 2) and ev.cdreprodutor is null then (select sigla from raca where cdraca = ev.cdraca)
when (ev.cdtiporeproducao = 3) then
(CASE WHEN (select count(CDANIMALRACA) FROM ANIMALRACA WHERE CDANIMALRACA = ra.CDANIMALRACA) = 1 THEN (SELECT sigla FROM raca WHERE cdraca IN (SELECT CDRACA FROM animalraca WHERE CDANIMALRACA = ra.CDANIMALRACA))
WHEN (select count(*) FROM animalraca WHERE CDANIMALRACA = ra.CDANIMALRACA) = 2
AND CDANIMALRACA IN (SELECT CDANIMALRACA FROM ANIMALRACA WHERE CDANIMALRACA = ra.CDANIMALRACA AND PERCENTUAL = 50) THEN 'XX'
WHEN (select count(*) FROM animalraca WHERE CDANIMALRACA = ra.CDANIMALRACA) = 2 AND CDANIMALRACA IN
(SELECT CDANIMALRACA FROM ANIMALRACA WHERE CDANIMALRACA = ra.CDANIMALRACA AND PERCENTUAL > 50) THEN (SELECT sigla FROM raca WHERE cdraca IN (SELECT CDRACA FROM animalraca WHERE CDANIMALRACA = ra.CDANIMALRACA AND PERCENTUAL > 50))
WHEN (select count(*) FROM animalraca WHERE CDANIMALRACA = ra.CDANIMALRACA) = 2 AND (SELECT PERCENTUAL FROM ANIMALRACA WHERE CDANIMALRACA = ra.CDANIMALRACA) = 50 THEN 'XX'
WHEN (select count(*) FROM animalraca WHERE CDANIMALRACA = ra.CDANIMALRACA) = 2 AND (SELECT PERCENTUAL FROM ANIMALRACA WHERE CDANIMALRACA = ra.CDANIMALRACA) = 50 THEN 'XX'
WHEN (select count(*) FROM animalraca WHERE CDANIMALRACA = ra.CDANIMALRACA) = 3 AND CDANIMALRACA IN
(SELECT CDANIMALRACA FROM ANIMALRACA WHERE CDANIMALRACA = ra.CDANIMALRACA AND PERCENTUAL > 50) THEN (SELECT sigla FROM raca WHERE cdraca IN
(SELECT CDRACA FROM animalraca WHERE CDANIMALRACA = ra.CDANIMALRACA AND PERCENTUAL > 50))
ELSE 'XX' end) ELSE null end) as reprodutor
, NULL as doadora
, diag1.data as dt_diag1
, diag1.diagnostico as diag1
, diag2.data as dt_diag2
, diag2.diagnostico as diag2
, par.data as dt_parto
, tpar.descricao as tipo_parto
, (case when (par.retencaoplacenta = 1) then 'Sim' when (par.cdreproducao is not null) then 'Não' else null end) as retencao_placenta
, cria1.numero as cria1
, coalesce(cria1.sexo, par.sexocria1) as sexocria1
, cria2.numero as cria2
, coalesce(cria2.sexo, par.sexocria2) as sexocria2
, lac.dtfim as dtsecagem
from
animal an
join reproducao ev on ev.cdanimal = an.cdanimal
left join reproducao next on next.cdreproducao =
(select first 1 re.cdreproducao from reproducao re
where re.cdanimal = an.cdanimal
and re.data > ev.data
and ((re.cio in (1,2)) or (re.cdtiporeproducao = any (select cdtiporeproducao from tiporeproducao where cdtiporeproducao <= 3)) or (re.diagnostico is not null))
order by re.data asc)
left join reproducao diag1 on diag1.cdreproducao =
(case when (next.diagnostico is not null) then next.cdreproducao else null end)
left join reproducao next2 on next2.cdreproducao =
(select first 1 re.cdreproducao from reproducao re
where re.cdanimal = an.cdanimal
and re.data > next.data
and ((re.cio in (1,2)) or (re.cdtiporeproducao = any (select cdtiporeproducao from tiporeproducao where cdtiporeproducao <= 3)) or (re.diagnostico is not null))
order by re.data asc)
left join reproducao diag2 on diag2.cdreproducao =
(case when (next2.diagnostico is not null and next.diagnostico is not null) then next2.cdreproducao else null end)
left join reproducao nextpar on nextpar.cdreproducao =
(select first 1 re.cdreproducao from reproducao re
where re.cdanimal = an.cdanimal
and re.data > ev.data
and ((re.cio in (1,2)) or (re.cdtiporeproducao = any (select cdtiporeproducao from tiporeproducao where cdtiporeproducao <= 3)) or (re.diagnostico = 'N') or (re.cdtiporeproducao = 7))
order by re.data asc)
left join reproducao par on par.cdreproducao =
(case when (nextpar.cdtiporeproducao = 7) then nextpar.cdreproducao else null end)
left join tipoparto tpar on tpar.cdtipoparto = par.cdtipoparto
join tiporeproducao tr on tr.cdtiporeproducao = ev.cdtiporeproducao
left join pessoa ins on ins.cdpessoa = ev.cdpessoa
left join medida ecc on ecc.cdreproducao = ev.cdreproducao
left join protocoloiatf prot on prot.cdprotocoloiatf = ev.cdprotocoloiatf
left join animal emb on emb.cdanimal = ev.cdembriao
left join animal doa on doa.cdanimal = emb.cdmae
left join animal paiemb on paiemb.cdanimal = emb.cdpai
left join animal rep on rep.cdanimal = coalesce(ev.cdreprodutor, paiemb.cdanimal)
left join animal cria1 on cria1.cdanimal = par.cdanimalcria1
left join animal cria2 on cria2.cdanimal = par.cdanimalcria2
left join lactacao lac on lac.cdanimal = an.cdanimal and lac.dtinicio between (par.data - 10) and (par.data + 10)
LEFT JOIN animalraca ra ON ra.CDANIMAL = paiemb.CDANIMAL
where
ev.cdtiporeproducao in (1,2,3) and an.cdanimal in (LISTA DE CDSANIMAIS DOS ANIMAIS)
order by an.cdanimal

 

 

 


 

Passo 10 – Obter os controles leiteiro e importar

Neste passo, buscaremos os controles leiteiros dos animais que serão importados. 

Também temos a indicação da sigla que criamos para a importação, conforme vimos na Introdução desta dica. Desta maneira, antes de rodar as consultas, altere a marcação '_ZZZ', informando a sigla que você definiu.

No fim da consulta, temos a indicação 'LISTA DE CDSANIMAIS DOS ANIMAIS'. Informe, aqui, a lista dos cdsanimais apenas dos animais que serão importados.

select
an.numero || '_ZZZ' as numero
, lei1.PESO1 as peso_1
, lei1.PESO2 as peso_2
, lei1.PESO3 as peso_3
, lei1.PESOTOTAL as peso_total_leite
, lei1.dtleite as data_leite
from
leite lei1
left join animal an on lei1.cdanimal=an.cdanimal
where
an.cdanimal in (LISTA DE CDSANIMAIS DOS ANIMAIS)
order by 1,6

 

 


 

Passo 11 – Obter as pesagens corporais e importar

Neste passo, buscaremos as pesagens corporais dos animais que serão importados.

Também temos a indicação da sigla que criamos para a importação, conforme vimos na Introdução desta dica. Desta maneira, antes de rodar as consultas, altere a marcação '_ZZZ', informando a sigla que você definiu.

No fim da consulta, temos a indicação 'LISTA DE CDSANIMAIS DOS ANIMAIS'. Informe, aqui, a lista dos cdsanimais apenas dos animais que serão importados.

select
an.numero || '_ZZZ' as numero
, pe.dtpeso as data_peso
, pe.PESO as peso
from
peso pe
left join animal an on pe.cdanimal=an.cdanimal
where
pe.cdtipopeso not in (1,2,6) and
an.cdanimal in (LISTA DE CDSANIMAIS DOS ANIMAIS) order by 1,2