Escolar Documentos
Profissional Documentos
Cultura Documentos
EDUARDO GIRARDI
São Leopoldo
2009
EDUARDO GIRARDI
São Leopoldo
2009
Dedico este trabalho aos meus pais, Valdir e Marlizete, e à
minha irmã, Talita, que por todos estes anos tem incentivado,
participado, e principalmente acreditado na concretização de
meus sonhos.
AGRADECIMENTOS
Agradeço à AES Sul e aos colegas de trabalho, pelo apoio durante minha
formação como profissional e ao suporte oferecido durante o desenvolvimento deste
trabalho.
1 INTRODUÇÃO .......................................................................................................12
1.1 OBJETIVOS ........................................................................................................12
1.2 ESTRUTURA DO TRABALHO............................................................................14
1.3 RELAÇÃO COM DISCIPLINAS...........................................................................14
2 FUNDAMENTAÇÃO TEÓRICA .............................................................................15
2.1 O SETOR ELÉTRICO BRASILEIRO...................................................................15
2.1.1 A regulação do setor elétrico brasileiro .......................................................15
2.1.2 A medição eletrônica em clientes atendidos em baixa tensão ..................17
2.2 O FATOR DE POTÊNCIA ...................................................................................20
2.2.1 A influência do ambiente brasileiro para o fator de potência ....................25
2.3 O PROCESSO DE DESCOBERTA DO CONHECIMENTO ................................29
2.3.1 Inteligência artificial .......................................................................................31
2.3.2 Mineração de dados .......................................................................................32
2.3.2.1 Classificação de dados..................................................................................34
2.3.3 O aprendizado de máquina............................................................................34
2.3.3.1 Conjunto de treinamento e teste ...................................................................35
2.3.3.2 Árvores de decisão........................................................................................37
2.3.3.2.1 O algoritmo ID3 ..........................................................................................39
2.3.3.2.2 O ganho de informação e a entropia ..........................................................40
2.3.3.2.3 O algoritmo C4.5 ........................................................................................42
2.3.3.2.4 A poda da árvore de decisão......................................................................42
2.3.3.3 Redes neurais artificiais ................................................................................44
2.3.3.3.1 O modelo de neurônio biológico.................................................................45
2.3.3.3.2 Notas históricas sobre o desenvolvimento das redes neurais....................48
2.3.3.3.3 O neurônio artificial.....................................................................................49
2.3.3.3.4 Topologias de redes neurais artificiais .......................................................51
2.3.3.3.5 Algoritmos de aprendizado.........................................................................52
2.3.3.3.6 O Perceptron de múltiplas camadas utilizando backpropagation ...............52
2.3.3.3.7 O algoritmo de aprendizado backpropagation............................................55
2.3.4 Ferramentas de mineração de dados ...........................................................58
2.4 MÉTODOS DE ANÁLISE DE PERFORMANCE ................................................. 60
2.4.1 A taxa de sucesso ..........................................................................................60
2.4.2 A curva ROC e a área sob a curva ................................................................62
2.5 TRABALHOS RELACIONADOS .........................................................................64
3 DESENVOLVIMENTO ...........................................................................................66
3.1 DEFINIÇÃO DO ESCOPO DE TRABALHO ........................................................66
3.2 SELEÇÃO DOS DADOS .....................................................................................68
3.3 PREPARAÇÃO DOS DADOS .............................................................................69
3.3.1 Transformação dos dados.............................................................................70
3.3.2 Limpeza e organização dos dados ...............................................................73
3.3.3 Ruídos incorporados aos dados...................................................................76
3.3 ESCOLHA DA TAREFA DE MINERAÇÃO DE DADOS ......................................77
3.4 DETERMINAÇÃO DO ALGORITMO DE MINERAÇÃO DE DADOS...................77
3.5 O AMBIENTE DE DESENVOLVIMENTO DO WEKA..........................................78
3.6 IMPLEMENTAÇÃO DO FLUXO DE CONHECIMENTO NO WEKA....................79
3.6.1 Configuração do ambiente KnowledgeFlow do WEKA...............................82
3.6.1.1 Configuração da Árvore de Decisão..............................................................84
3.6.1.2 Configuração da rede neural artificial............................................................86
3.7 ANÁLISE DOS RESULTADOS ...........................................................................91
3.7.1 Análise da matriz de contingência................................................................91
3.7.2 Análise da curva roc e a área sob a curva (AUC) ........................................93
3.7.3 A representação da árvore de decisão.........................................................94
4 CONCLUSÃO ........................................................................................................96
4.1 COMPARATIVO ENTRE O MÉTODO ATUAL E O PROPOSTO .......................96
4.2 OPORTUNIDADES DE PESQUISA FUTURA ....................................................97
4.3 CONSIDERAÇÕES FINAIS E RECOMENDAÇÕES...........................................98
REFERÊNCIAS.........................................................................................................99
APÊNDICE A – CÓDIGOS SQL .............................................................................105
APÊNDICE B – REMANEJO DE MEDIDORES .....................................................122
12
1 INTRODUÇÃO
1.1 OBJETIVOS
- a árvore de conhecimento;
- a rede neural artificial.
2 FUNDAMENTAÇÃO TEÓRICA
Cabe esclarecer as definições de grupo “A” e grupo “B”, que podem ser
encontradas na Resolução supracitada. Nesta Resolução é determinado que os
clientes atendidos em tensão de fornecimento igual ou superior à 2,3 kV, ou mesmo
os clientes com entrada de energia subterrânea e atendidos abaixo desta tensão,
sejam enquadrados como clientes do grupo “A”, salvo algumas exceções da norma,
irrelevantes para este trabalho.
0,92
FER = CA − 1TCA
fm
Onde:
A potência pode ser definida como uma grandeza que mede quanto trabalho
(conversão de energia de uma para outra forma) pode ser realizado em certo
período de tempo (BOYLESTAD, 1998).
elas (WILDI, 2000, tradução nossa). Esta forma, conhecida como o triângulo das
potências, pode ser vista na Figura 1.
P
FP = cos φ =
P + Q2
2
Onde:
FP = fator de potência que é adimensional
P = potência ativa expressa em Watts [W]
Q = potência reativa expressa em Volt-ampère-reativo [var]
País FP
Coréia 0,93
França 0,93
Portugal 0,93
Bélgica 0,95
Argentina 0,95
Alemanha 0,95
Suíça 0,95
Quadro 1 - Fator de potências em vários países
Fonte: AMORIM (2008)
24
Gráfico 5 - Forma de tensão e corrente solicitadas por uma carga não linear
Fonte: SANTOS (2001)
Ainda, o estudo realizado por Penna et al. (2001), em que foram investigados
os efeitos da redução da potência ativa através da substituição de lâmpadas
incandescentes por lâmpadas fluorescentes compactas, demonstra que, em
determinadas situações, existe a degradação do fator de potência e o aumento das
correntes harmônicas. Isto implica que, em alguns casos de aplicação dos
programas de eficiência energética, as medições da carga liberada no sistema
podem indicar um valor aquém do esperado.
Desde que os sumérios – povo que vivia entre os rios Tigre e Eufrates, em
torno de 55.000 anos atrás - inventaram a inscrição de dados, através de gravações
em tábuas de barro, as pessoas vêm tentando compreender e tirar proveito da
coleta de dados (PYLE, 1999, tradução nossa). O advento dos meios de
armazenagem da informação trouxe consigo uma quantidade de dados, nunca antes
verificada na história, que variam desde uma simples transação em um
supermercado, até os registros das companhias aéreas sobre os destinos mais
frequentes de seus passageiros, fluindo para bancos de dados cada vez mais
poderosos. Contudo, essa massa digital tornou-se tão grande que, dificilmente,
algum analista poderia usufruir de toda a informação guardada. Neste ambiente de
contínuo desenvolvimento, o aumento do poder de processamento das informações
e os avanços dos métodos estatísticos trouxeram a combinação que resultaria nos
primórdios de mineração de dados1 para a descoberta de conhecimento2 (CIOS;
PEDRYCZ; SWINIARSKY, 1998, tradução nossa).
Fayyad et al. (1996, tradução nossa) oferecem uma visão prática do processo
de descoberta do conhecimento em bancos de dados, conforme se evidencia na
Figura 2.
1
Termo na língua inglesa: data mining
2
Termo na língua inglesa: knowledge discovery
30
Interpretação
Avaliação
Mineração
Transformação Conhecimento
Limpeza
Seleção
Banco de dados
3
Termo na língua inglesa: Machine Learning
32
a partir de uma base de dados que contenha ruídos (erros ou imperfeições) nos
dados. Na Figura 3, vê-se um diagrama do aprendizado de máquina, com suas
entradas (positivas ou negativas) e suas saídas (MICHALSKI; BRATKO; KUBAT,
1998, tradução nossa):
4
Do inglês, holdout procedure, tradução nossa
5
Do inglês, Cross Validation, tradução nossa
6
Do inglês, Ten Fold Cross Validation, tradução nossa
37
7
Do inglês, Deciosion Trees, tradução nossa
38
As árvores de decisão são representadas por uma raiz, nós, ramos e folhas,
conforme é possível verificar na Figura 4. A raiz, geralmente, é posicionada no topo
do gráfico e os ramos conectam a raiz à primeira camada de nós. O nó pode ser
visualizado como uma espécie de pergunta, que busca discriminar a base de dados
da melhor forma possível, através dos atributos contidos na base de dados. Os
ramos continuam crescendo a partir desses nós, e subdividindo esta árvore em
vários nós, até alcançar as folhas, na base do gráfico. As folhas são as classes e
podem ser entendidas como uma caixa, onde os casos estão classificados (BERRY;
LINOFF, 1997, tradução nossa).
Pressão
Sanguínea
Normal Alta
TESTE 1 TESTE 3
Ausente Presente
Positivo Negativo
p p n n
entropia ( S ) = − log 2 − log 2
S S S S
Onde:
S são os exemplos da base de dados;
p são os exemplos positivos (categoria positiva)
n são os exemplos negativos (categoria negativa)
SV
GI ( S , F ) = entropia( S ) − ∑ entropia( SV )
V S
Onde:
GI é o Ganho de Informação
S são os exemplos da base de dados;
F é um determinado atributo;
SV é um subconjunto de S onde F assume um determinado valor v
v é um valor assumido em um determinado atributo
11
Do inglês, subtree replacement, tradução nossa
12
Do inglês, subtree raising, tradução nossa
43
três novos conjuntos da Figura 8, 1’, 2’ e 3’. Pode-se entender, conforme Witten e
Frank (2000, tradução nossa), que o ramo C cresceu, de forma a englobar o ramo B.
A A
B
C
4 5
C
e Vecchi. Formulada para resolver problemas de otimização, foi uma das alavancas
para o desenvolvimento de outros trabalhos importantes como a Máquina de
Boltzmann, de Ackley, Hinton e Sejnowski, em 1985, que demonstrava a falta de
embasamento no trabalho de Minsky e Papert e renovou a motivação na pesquisa
de redes neurais. Em 1986, o algoritmo de aprendizagem por retropropagação
(backpropagation) foi publicado por Rumelhart, Hinton e Williams atraindo a atenção
de diversas pesquisas para este campo (HAYKIN, 2001).
m
y k = ϕ ∑ wkj x j + bk
j =1
Onde:
13
Do inglês, feedfoward, tradução nossa
52
14
Do inglês, backpropagation multilayer perceptron
53
Sinais de saída
(resposta)
(estímulos)
1
yj =
1 + exp (− v j )
Onde:
1,2
0,8
0,6
0,4
0,2
0
-10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10
15
Do ingles, Least Mean Square
56
Uma das maneiras de acelerar a convergência da rede, sem alterar sua taxa
de aprendizagem, é utilizar uma técnica chamada momentum, que consiste em
adicionar uma fração da última correção do peso. Assim, esta adição tende a manter
a correção do peso seguindo na mesma direção. Geralmente este termo possui
valores positivos e menores do que 1 (FREEMAN; SKAPURA, 1992, tradução
nossa).
58
16
Sigla para Waikato Environment for Knowledge Analysis
59
17
Do ingles Receiver Operating Characteristics
61
18
Do inglês, Confusion Matrix, tradução nossa
62
Conforme Silva (2006, p.1) uma curva ROC é “uma técnica para visualizar,
avaliar, organizar e selecionar classificadores baseado em suas performances”.
Pode-se visualizar o gráfico da Curva ROC no Gráfico 8:
1
D
0,9
0,8
0,7
Taxa de acerto (TP rate)
C
0,6
0,5
0,4
0,3
0,2
0,1
0
0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
Taxa de falsos positivos (FP rate)
AUC19. Conforme Fawcett (2004, p. 15, tradução nossa), este indicador possui uma
importante propriedade estatística:
Assim, neste tópico, cabe elencar alguns dos trabalhos que compartilham dos
métodos aplicados e, inclusive, serviram como referencial para compor o presente
trabalho.
Em Braga (2000) é realizada uma análise da curva ROC e suas variantes sob
o aspecto estatístico. A autora realiza uma dissertação sobre a aplicação e a
funcionalidade desta ferramenta e aborda o uso da curva ROC e da área abaixo da
curva (AUC) para a avaliação de diagnósticos médicos.
66
3 DESENVOLVIMENTO
Neste cenário, foi considerado que outras formas de análise poderiam ser
utilizadas a fim de identificar um padrão de clientes com consumo de energia reativa
e baixo fator de potência, gerando o faturamento de energia reativa. Através de
reuniões com especialistas e de pesquisa nos bancos de dados, foi verificado que,
além do histórico de energia ativa que já vinha sendo utilizada nos estudos,
poderiam ser utilizadas outras informações pertinentes, como, por exemplo:
artificial. Além disso, a árvore de decisão fornece uma visão das regras que compõe
os dados analisados e que poderia revelar, em um futuro trabalho de análise e
validação dos resultados, em novas relações ocultas nos dados (MITCHELL, 1997,
tradução nossa).
preparação dos dados foram utilizadas várias ferramentas, conforme será abordado
neste tópico.
intersecção dos dados das três tabelas que possuíam entre si uma coluna
identificadora em comum: a coluna “NUC”. O código SQL utilizado para realizar a
intersecção pode ser encontrado no Apêndice A, sob o rótulo Código A.6, gerando a
Tabela 08. Os comandos, os métodos e as estratégias para compor as consultas
SQL aplicadas neste trabalho podem ser pesquisados em Lans (2000, tradução
nossa).
Uma vez exportados os dados, realizou-se uma edição para que fosse
adaptado ao formato ARFF, como se pode ver na Figura 24. Este formato foi
desenvolvido pelo Departamento de Ciência da Computação da Universidade de
Waikato especificamente para ser utilizado no WEKA. Maiores informações sobre
este formato podem ser encontradas em Witten, Frank (2000, tradução nossa).
20
Sigla para Comma Separated Values
80
- Bloco J48: utilizado para implementar o algoritmo C4.5 que compõe uma
árvore de decisão;
- Bloco Multi Perceptron: utilizado para implementar uma rede neural baseada
em perceptrons multi-camada utilizando o algoritmo de aprendizagem
backpropagation com ajuste de momentum;
BinarySplits: esta opção faz o tratamento das entradas nominais para que o
algoritmo possa realizar os cálculos na forma numérica. True
ConfidenceFactor: esta opção determina o intervalo de confiança que é
aplicado ao cálculo da poda. Quanto menor o valor, maior a ação da poda. As
iterações demonstraram que o valor de 12%, abaixo do padrão do modelo
retornam um bom modelo; 0.12
Debug: esta opção retorna mais informações para o console; False
minNumObj: número mínimo de exemplos por folha; 10
numFolds: número de partições nos dados utilizadas para a opção reduced-
error prunning, seu funcionamento é similar ao bloco CrossValidation,
realizando um ciclo com uma partição utilizada para a poda enquanto o
restante é utilizada para o crescimento da árvore; 3
reducedErrorPrunning: esta opção separa algumas partições para realizar
uma estimativa do erro de uma maneira alternativa ao algoritmo C4.5; False
saveInstanceData: opção que armazena os dados de treinamento para
visualização; False
86
68,0%
64,0%
60,0%
56,0%
52,0%
0,25 0,12 0,06 0,03
Intervalo de Confiança AUC Taxa Sucesso
67,0%
66,6%
66,2%
65,8%
65,4%
65,0%
64,6%
500 700 900 1100 1300 1500 1700 1900
Épocas de treinamento AUC Taxa Sucesso
Gráfico 10 – A influência das épocas sobre a AUC e a Taxa de Sucesso
Fonte: Elaborado pelo autor
Ainda, para determinar qual seria a configuração ideal das camadas ocultas
da rede neural, utilizou-se o critério citado por Santos, Carvalho e Riul (2006) onde
foram implementadas duas redes neurais. A primeira, utilizando somente uma
camada oculta contendo a metade da soma das entradas e saídas da rede,
totalizando assim 10 neurônios na camada oculta. O segundo método utilizou duas
camadas ocultas, com a primeira contendo o mesmo número das entradas e a
segunda contendo a soma das entradas e saídas.
67,5%
67,0%
66,5%
Taxa de Aprendizado
66,0%
0,3 0,2 0,1
Neste bloco temos uma opção que possibilita a construção manual da rede
neural através da definição de camadas ocultas e conexões. Esta interface é
carregada após ser configurada a opção “GUI” com o valor “true”, e uma tela de
trabalho é inicializada, ilustrada pela Figura 31.
91
receber tal sinalização, uma equipe com um custo X teria que ser deslocada até a
unidade consumidora para efetuar a troca do medidor eletromecânico de energia
ativa por um medidor eletrônico com medição de energia reativa. Este medidor
eletrônico que previamente já fora retirado de algum outro cliente que não
apresentava faturamento de energia reativa voltará a não registrar faturamento
reativo. O custo do erro neste caso é uma instalação desnecessária além de utilizar
o medidor em um local sem faturamento.
- Falso Negativo: O falso negativo indicaria um cliente com sua classe “não”,
informando então que este cliente não teria possibilidade de apresentar faturamento
de energia reativa. O custo do erro neste caso compõe somente o valor de energia
que será deixada de registrar, uma vez que nenhuma equipe será enviada ao local.
Neste quesito, o algoritmo da rede neural artificial demonstrou que possui uma maior
taxa de sucesso, contudo a presença de um maior custo custo com Falsos Positivos
representa uma dúvida sobre como determinar o melhor algoritmo. Neste sentido, a
análise da curva ROC e o indicador da área sob a curva ROC vêm para contribuir.
O índice da área sob a curva apresentou pouca variação, frente aos vários
modelos treinados e testados em ambos os algoritmos, conforme observado nos
tópicos anteriores. Verificou-se que a rede neural artificial demonstrou ser superior
ao logo de toda a curva ROC, podendo-se afirmar que o modelo neural proposto é
um classificador superior à árvore de decisão implementada.
4 CONCLUSÃO
curva ROC para a rede neural processada no Clementine foi de 0,672 e para a
árvore de decisão foi de 0,650.
- A extração das regras da rede neural artificial com uma avaliação frente às
regras fornecidas pelo algoritmo da árvore de decisão;
REFERÊNCIAS
AES SUL. Sistema Notus: base de dados da Subestação Canoas. RS, 2009.
BERRY, Michael J. A.; LINOFF, Gordon. Data mining techniques : for marketing,
sales, and customer support. New York: John Wiley & Sons, 1997.
ELDER, John F. IV; ABBOTT, Dean W.. A comparison of leading data mining tools.
In: International Conference on Knowledge Discovery and Data Mining, 4th., 1998,
New York. Anais... New York, 1998. Disponível em: <http://datamininglab.com/
Portals/0/tool%20eval%20articles/kdd98_elder_abbott_nopics.pdf>. Acesso em: 13
mar. 2009.
HAYKIN, Simon. Redes neurais: princípios e prática. 2. ed. Porto Alegre: Artes
Médicas, 2001.
LANS, Rick F. Van Der. Introduction to sql : mastering the relational database
language. 3rd. ed. Harlow: Addison-Wesley, 2000.
MAGALHAES, Arthur Olivare; MELLO, Gilmar Ribeiro; BITENCOURT, Ana C.E. dos
Passos. DEPRECIAÇÃO: Analisando os livros de contabilidade para iniciantes.
CONGRESSO USP INICIAÇÃO CIENTÍFICA EM CONTABILIDADE, 3, 2006, São
Paulo. Pesquisa contábil e desenvolvimento econômico-social. Disponível em:
<www.congressouspfipecafi.org/artigos32006/310.pdf>. Acesso em: 18 jan 2009.
METERING LATIN AMERICA, 2008, Rio de Janeiro, Anais... Rio de Janeiro, 2008.
(Documento de distribuição restrita aos participantes do evento)
MICHALSKI, Ryszard S.; BRATKO, Ivan; KUBAT, Miroslav; Machine learning and
data mining: methods and applications. Chichester: John Wiley & Sons, 1998.
PYLE, Dorian. Data preparation for data mining. San Francisco: Morgan
Kaufmann, 1999.
SILVA, Felipe de Castro da. Análise ROC. São José dos Campos, SP, 2006.
Disponível em: <http://www.dpi.inpe.br/~felipe/works/inpe/spr/roc_analyzes.pdf>.
Acesso em: 15 jan. 2009.
TAVARES, Leonardo G.; LOPES, Heitor S.; LIMA, Carlos R.E. Estudo comparativo
de métodos de aprendizado de máquina na detecção de regiões promotoras de
genes de escherina coli. SIMPOSIO BRASILEIRO DE INTELIGÊNCIA
COMPUTACIONAL, 1, 2007, Florianópolis. Anais... Disponível em:
<http://www.cpgei.ct.utfpr.edu.br/~hslopes/publicacoes/2007/sbic2007e.pdf>.
Acesso em: 05 mar. 2009.
VIEIRA, Sérgio. ENERGIA REATIVA: o que o consumidor paga e não sabe. Saber
Eletrônica On-Line, São Paulo, 10 jan. 2008. Disponível em:
<http://www.sabereletronica.com.br/secoes/leitura/353>. Acesso em: 22 mar. 2009.
WEISS, Sholom M.; INDURKHYA, Nitin. Predictive data mining: a practical guide.
San Francisco: Morgan Kaufmann, 1998.
WILDI, Theodore. Electrical machines, drives and power systems. 4. ed. Upper
Saddle River: Prentice Hall, 2000.
WITTEN, Ian H.; FRANK, Eibe. Data mining: practical machine learning tools and
techniques with java implementations. San Francisco: Morgan Kaufmann, 2000.
105
FROM(
SELECT nuc,kWh,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200701
group by periodo,nuc,kWh
106
union all
SELECT nuc,0,kWh,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200702
group by periodo,nuc,kWh
union all
SELECT nuc,0,0,kWh,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200703
group by periodo,nuc,kWh
union all
SELECT nuc,0,0,0,kWh,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200704
group by periodo,nuc,kWh
union all
SELECT nuc,0,0,0,0,kWh,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200705
group by periodo,nuc,kWh
union all
SELECT nuc,0,0,0,0,0,kWh,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200706
group by periodo,nuc,kWh
union all
SELECT nuc,0,0,0,0,0,0,kWh,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200707
group by periodo,nuc,kWh
union all
SELECT nuc,0,0,0,0,0,0,0,kWh,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200708
107
group by periodo,nuc,kWh
union all
SELECT nuc,0,0,0,0,0,0,0,0,kWh,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200709
group by periodo,nuc,kWh
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,kWh,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200710
group by periodo,nuc,kWh
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,kWh,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200711
group by periodo,nuc,kWh
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,kWh,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200712
group by periodo,nuc,kWh
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,kWh,0,0,0,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200801
group by periodo,nuc,kWh
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,0,kWh,0,0,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200802
group by periodo,nuc,kWh
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,kWh,0,0,0,0,0,0,0,0,0,0,0,0
108
FROM FER
where periodo=200803
group by periodo,nuc,kWh
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,kWh,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200804
group by periodo,nuc,kWh
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,kWh,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200805
group by periodo,nuc,kWh
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,kWh,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200806
group by periodo,nuc,kWh
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,kWh,0,0,0,0,0,0,0,0
FROM FER
where periodo=200807
group by periodo,nuc,kWh
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,kWh,0,0,0,0,0,0,0
FROM FER
where periodo=200808
group by periodo,nuc,kWh
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,kWh,0,0,0,0,0,0
FROM FER
where periodo=200809
group by periodo,nuc,kWh
109
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,kWh,0,0,0,0,0
FROM FER
where periodo=200810
group by periodo,nuc,kWh
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,kWh,0,0,0,0
FROM FER
where periodo=200811
group by periodo,nuc,kWh
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,kWh,0,0,0
FROM FER
where periodo=200812
group by periodo,nuc,kWh
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,kWh,0,0
FROM FER
where periodo=200901
group by periodo,nuc,kWh
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,kWh,0
FROM FER
where periodo=200902
group by periodo,nuc,kWh
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,kWh
FROM FER
where periodo=200903
group by periodo,nuc,kWh
)
) AS [%$##@_Alias]
GROUP BY [%$##@_Alias].nuc;
110
FROM(
SELECT nuc,kVArh,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200701
group by periodo,nuc,kVArh
union all
SELECT nuc,0,kVArh,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200702
group by periodo,nuc,kVArh
union all
SELECT nuc,0,0,kVArh,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
111
FROM FER
where periodo=200703
group by periodo,nuc,kVArh
union all
SELECT nuc,0,0,0,kVArh,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200704
group by periodo,nuc,kVArh
union all
SELECT nuc,0,0,0,0,kVArh,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200705
group by periodo,nuc,kVArh
union all
SELECT nuc,0,0,0,0,0,kVArh,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200706
group by periodo,nuc,kVArh
union all
SELECT nuc,0,0,0,0,0,0,kVArh,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200707
group by periodo,nuc,kVArh
union all
SELECT nuc,0,0,0,0,0,0,0,kVArh,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200708
group by periodo,nuc,kVArh
union all
SELECT nuc,0,0,0,0,0,0,0,0,kVArh,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200709
group by periodo,nuc,kVArh
112
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,kVArh,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200710
group by periodo,nuc,kVArh
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,kVArh,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200711
group by periodo,nuc,kVArh
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,kVArh,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200712
group by periodo,nuc,kVArh
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,kVArh,0,0,0,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200801
group by periodo,nuc,kVArh
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,0,kVArh,0,0,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200802
group by periodo,nuc,kVArh
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,kVArh,0,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200803
group by periodo,nuc,kVArh
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,kVArh,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200804
113
group by periodo,nuc,kVArh
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,kVArh,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200805
group by periodo,nuc,kVArh
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,kVArh,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200806
group by periodo,nuc,kVArh
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,kVArh,0,0,0,0,0,0,0,0
FROM FER
where periodo=200807
group by periodo,nuc,kVArh
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,kVArh,0,0,0,0,0,0,0
FROM FER
where periodo=200808
group by periodo,nuc,kVArh
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,kVArh,0,0,0,0,0,0
FROM FER
where periodo=200809
group by periodo,nuc,kVArh
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,kVArh,0,0,0,0,0
FROM FER
where periodo=200810
group by periodo,nuc,kVArh
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,kVArh,0,0,0,0
114
FROM FER
where periodo=200811
group by periodo,nuc,kVArh
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,kVArh,0,0,0
FROM FER
where periodo=200812
group by periodo,nuc,kVArh
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,kVArh,0,0
FROM FER
where periodo=200901
group by periodo,nuc,kVArh
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,kVArh,0
FROM FER
where periodo=200902
group by periodo,nuc,kVArh
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,kVArh
FROM FER
where periodo=200903
group by periodo,nuc,kVArh
)
) AS [%$##@_Alias]
GROUP BY [%$##@_Alias].nuc;
FROM(
SELECT nuc,fer,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200701
group by periodo,nuc,fer
union all
SELECT nuc,0,fer,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200702
group by periodo,nuc,fer
union all
SELECT nuc,0,0,fer,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200703
group by periodo,nuc,fer
union all
SELECT nuc,0,0,0,fer,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200704
group by periodo,nuc,fer
116
union all
SELECT nuc,0,0,0,0,fer ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200705
group by periodo,nuc,fer
union all
SELECT nuc,0,0,0,0,0,fer,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200706
group by periodo,nuc,fer
union all
SELECT nuc,0,0,0,0,0,0,fer,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200707
group by periodo,nuc,fer
union all
SELECT nuc,0,0,0,0,0,0,0,fer,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200708
group by periodo,nuc,fer
union all
SELECT nuc,0,0,0,0,0,0,0,0,fer,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200709
group by periodo,nuc,fer
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,fer,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200710
group by periodo,nuc,fer
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,fer,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
FROM FER
117
where periodo=200711
group by periodo,nuc,fer
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,fer,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200712
group by periodo,nuc,fer
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,fer,0,0,0,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200801
group by periodo,nuc,fer
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,0,fer,0,0,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200802
group by periodo,nuc,fer
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,fer,0,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200803
group by periodo,nuc,fer
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,fer,0,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200804
group by periodo,nuc,fer
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,fer,0,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200805
group by periodo,nuc,fer
union all
118
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,fer,0,0,0,0,0,0,0,0,0
FROM FER
where periodo=200806
group by periodo,nuc,fer
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,fer,0,0,0,0,0,0,0,0
FROM FER
where periodo=200807
group by periodo,nuc,fer
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,fer,0,0,0,0,0,0,0
FROM FER
where periodo=200808
group by periodo,nuc,fer
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,fer,0,0,0,0,0,0
FROM FER
where periodo=200809
group by periodo,nuc,fer
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,fer,0,0,0,0,0
FROM FER
where periodo=200810
group by periodo,nuc,fer
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,fer,0,0,0,0
FROM FER
where periodo=200811
group by periodo,nuc,fer
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,fer,0,0,0
FROM FER
where periodo=200812
group by periodo,nuc,fer
119
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,fer,0,0
FROM FER
where periodo=200901
group by periodo,nuc,fer
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,fer,0
FROM FER
where periodo=200902
group by periodo,nuc,fer
union all
SELECT nuc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,fer
FROM FER
where periodo=200903
group by periodo,nuc,fer
)
) AS [%$##@_Alias]
GROUP BY [%$##@_Alias].nuc;
FROM(
SELECT nuc,CIDADE, CKT,ALIM,POT,0,0,0,0,0,0,0,0,0,0
FROM ARTEF
where GRUPO='VENT'
group by GRUPO,nuc,POT,cidade,ckt,alim
union all
SELECT nuc,CIDADE, CKT,ALIM,0,POT,0,0,0,0,0,0,0,0,0
FROM ARTEF
where GRUPO='SOLDA'
group by GRUPO,nuc,POT,cidade,ckt,alim
union all
SELECT nuc,CIDADE, CKT,ALIM,0,0,POT,0,0,0,0,0,0,0,0
FROM ARTEF
where GRUPO='REFRIPQ'
group by GRUPO,nuc,POT,cidade,ckt,alim
union all
SELECT nuc,CIDADE, CKT,ALIM,0,0,0,POT,0,0,0,0,0,0,0
FROM ARTEF
where GRUPO='REFRIGD'
group by GRUPO,nuc,POT,cidade,ckt,alim
union all
SELECT nuc,CIDADE, CKT,ALIM,0,0,0,0,POT,0,0,0,0,0,0
FROM ARTEF
where GRUPO='MOTOR'
group by GRUPO,nuc,POT,cidade,ckt,alim
union all
SELECT nuc,CIDADE, CKT,ALIM,0,0,0,0,0,POT,0,0,0,0,0
FROM ARTEF
where GRUPO='MATESCR'
group by GRUPO,nuc,POT,cidade,ckt,alim
union all
121
union all
SELECT nuc,CIDADE, CKT,ALIM,0,0,0,0,0,0,0,POT,0,0,0
FROM ARTEF
where GRUPO='MAQELET'
group by GRUPO,nuc,POT,cidade,ckt,alim
union all
SELECT nuc,CIDADE, CKT,ALIM,0,0,0,0,0,0,0,0,POT,0,0
FROM ARTEF
where GRUPO='COM'
group by GRUPO,nuc,POT,cidade,ckt,alim
union all
SELECT nuc,CIDADE, CKT,ALIM,0,0,0,0,0,0,0,0,0,POT,0
FROM ARTEF
where GRUPO='AR'
group by GRUPO,nuc,POT,cidade,ckt,alim
union all
SELECT nuc,CIDADE, CKT,ALIM,0,0,0,0,0,0,0,0,0,0,POT
FROM ARTEF
where GRUPO='AQUEC'
group by GRUPO,nuc,POT,cidade,ckt,alim
)
) AS [%$##@_Alias]
GROUP BY [%$##@_Alias].nuc, [%$##@_Alias].CIDADE, [%$##@_Alias].CKT,
[%$##@_Alias].ALIM;