Pular para o conteúdo principal

Postagem em destaque

BlackTDN :: Como Criar Relatórios de Cotações com Dados Agrupados Usando SQL

img: DALL·E 2024-08-09 07.00.00 - A high-quality image showcasing a detailed SQL query being written in a code editor, such as VS Code, on a dark theme background. ... ## Como Criar Relatórios de Cotações com Dados Agrupados Usando SQL Quando trabalhamos com sistemas ERP e precisamos gerar relatórios de cotações que apresentam dados de múltiplos fornecedores, é comum encontrarmos a necessidade de pivotar registros que, originalmente, são apresentados de forma vertical. Isso é especialmente útil quando o objetivo é comparar preços ou condições de diferentes fornecedores para um mesmo produto em uma única linha do relatório. Neste artigo, vamos explorar uma abordagem para transformar registros verticais em colunas, facilitando a impressão de relatórios que consolidam informações de vários fornecedores em uma única linha. Vamos utilizar SQL com técnicas de pivotagem, e ao final, mostraremos como estender essa técnica para um número variável de fornecedores. ### Estrutura do Relatór

BlackTDN :: PowerShell :: Conexão direta ao SGBD via linha de comando

No exemplo anterior, BlackTDN :: PowerShell :: Conexão ODBC em Linha de Comando, vimos como, usando o PowerShell em linha de comando, podemos acessar dados em um BD através de um Driver ODBC. Mas, PowerShell vai muito além disso, é possível executar a conexão diretamente ao SGBD, bastando, para isso, alterar os Objetos de ODBC para SqlClient. conforme abaixo:

$Query =  "SELECT `n"
$Query += "   SE2.E2_FILIAL,`n"
$Query += "   SE2.E2_PREFIXO,`n"
$Query += "   SE2.E2_NUM,`n"
$Query += "   SE2.E2_PARCELA,`n"
$Query += "   SE2.E2_TIPO,`n"
$Query += "   SE2.E2_FORNECE,`n"
$Query += "   SE2.E2_LOJA,`n"
$Query += "   SE2.E2_NOMFOR,`n" 
$Query += "   SE2.E2_EMISSAO,`n"
$Query += "   SE2.E2_VENCTO,`n"
$Query += "   SE2.E2_VENCREA,`n"
$Query += "   SE2.E2_BAIXA,`n"
$Query += "   SE2.E2_BCOPAG,`n"
$Query += "   SE2.E2_VALOR,`n"
$Query += "   SE2.E2_NATUREZ`n"
$Query += "FROM`n"
$Query += "   SE2010 SE2`n"
$Query += "WHERE`n"
$Query += "   SE2.D_E_L_E_T_=' '`n"
$Query += "AND`n"
$Query += "   SE2.E2_EMISSAO BETWEEN '20110501' AND '20110531'`n"
$Query += "ORDER BY`n"
$Query += "   SE2.E2_FILIAL,`n"
$Query += "   SE2.E2_PREFIXO,`n"
$Query += "   SE2.E2_NUM,`n"
$Query += "   SE2.E2_PARCELA,`n"
$Query += "   SE2.E2_TIPO,`n"
$Query += "   SE2.E2_FORNECE,`n"
$Query += "   SE2.E2_LOJA`n"

$conn = new-object system.data.SqlClient.sqlconnection
$conn.connectionstring = "Data Source=127.0.0.1;Initial Catalog=rnp;User Id=sa;Password=sa;"

$Cmd = New-Object System.Data.SqlClient.sqlCommand
$Cmd.CommandText = $Query
$Cmd.Connection = $conn

$sqlAdapter = New-Object System.Data.SqlClient.sqlDataAdapter
$sqlAdapter.SelectCommand = $Cmd

$DataSet = New-Object System.Data.DataSet
$sqlAdapter.Fill($DataSet)
$Conn.Close()

$DataSet.Tables[0]

$sw = new-object system.io.streamwriter("c:\temp\se1_dataset_2011-05-01_2011-05-31.xml")
$DataSet.WriteXml($sw)
$sw.close()

image

e executar:

image

e se consultarmos a saída para o arquivo:

image

image

teremos:

image

image

Considerando que o SGBD utilizado no teste foi o SQL2000 utilizei o modelo de “Connection String” obtido em: Connection strings for SQL Server 2000, 7.0. Para outros SGBDs consulte a lista de “Connection String” disponíveis em: The Connection String Reference.

Os Administradores de Banco de Dados devem se maravilhar com essa ferramenta. Eu, como um mero coadjuvante mortal e fuçador, já fico. Imagine um “PowerUser”.

[]s

иαldσ dj

Comentários

Postagens mais visitadas