Ir ao conteúdo
  • Cadastre-se

Erciley Junior

Membro Pleno
  • Posts

    146
  • Cadastrado em

  • Última visita

Tudo que Erciley Junior postou

  1. Olá. Você só fez o trecho para inclusão dos itens do pedido, ok, só acho que está errado o campo QUANTIDADE estar declarado como um parâmetro VARCHAR. Declare-o com o mesmo tipo que o campo Qtde da tabela PedidoItem. - não foi isso que você perguntou, mas.... Quanto aos campos que estão sendo gravados com NULL, é porque você não especificou eles no seu INSERT, você terá que fazer: - Na opção de Inclusão, fazer um SELECT na tabela PRODUTOS para obter o PREÇO_DO_PRODUTO e armazenar em uma variável, após isto, usar essa variável para gravar o campo PedItemPreco, e o campo PedItemTotal, gravar com a multiplicação dessa variável pelo parâmetro Quantidade. - ESTOU CHUTANDO QUE A INFORMAÇÃO DO PREÇO DO PRODUTO ESTEJA NA TABELA PRODUTOS, VERIFIQUE. Para a inclusão da tabela Pedido, é só fazer basicamente igual fez com a tabela de PedidoItem, não tem segredo nenhum. Use o comando "DESC <nome_tabela>" para ver a estrutura da tabela e gravar os campos pertinentes.
  2. @Felipe Sachetti Tabela de log em mysql. Cerca de 10 mil registros diários, sendo que há datas com mais de 40 mil registros. Hoje a tabela está com mais de 5 milhões de registros. (5 milhões pois temos rotinas para mover os arquivos "mortos" para uma outra tabela de tempos em tempos) No seu caso, pensando melhor e levando em conta o que o amigo acima disse, o seu grande problema será o tamanho físico no HD que essa tabela acabará gerando, devido aos inúmeros campos que sempre serão gravados em branco devido pertencerem a outras tabelas. A não ser que você faça uma análise nesse sentido, e verifique: - Se o default dos campos for NULL, eles criam tanto espaço desnecessário no HD? Caso não, não há problema, mas criar campos com default NULL pode gerar problemas em suas consultas também, seria mais uma preocupação.
  3. Victor, você está criando um ALIAS para a tabela, com o próprio nome dela. Isso ao meu ver é totalmente desnecessário, não existe essa obrigatoriedade e no fim das contas, isso mais atrapalha doq ajuda.
  4. Não vejo grandes problemas nisso, desde que haja a indexação adequada para não tornar nenhuma pesquisa lenta. Nesse caso, seu índice mais básico seria pelos campos TIPO (que será criado) + NRO_MOVIMENTO (que é o número da nota de venda, entrada, etc...) Para a tabela de itens, terá que ter este mesmo índice só que com um terceiro campo, que seria o número do item (coisa básica). Não vejo problemas nisso. Não entro na questão de formalização e etc pois "não vem ao caso". Digo que não há problema com base em uma tabela de log que trabalhamos, que tem basicamente o mesmo conceito, e com certeza seu caso terá muito menos dados a serem consultados.
  5. Concordo DIF, não há nada de errado, só não acho "legal" por assim dizer, bem como alguns colocam condições secundárias no JOIN, e outros preferem fazer isso no where... frescuras a parte. E quanto ao INNER JOIN, ele funciona perfeitamente em MYISAM também. (só conheço innodb e myisam, então quanto a outros engines não posso afirmar)
  6. Olá, tente assim SELECT nome_editora, sum(qtdlivros)-- conta o valor totalFrom Editora AS EINNER JOIN Livro AS L ON E.cod_editora = L.cod_editoraGroup By nome_editora
  7. Caso ninguém responda depois eu vejo com mais tempo e respondo.... Só sei que esse FROM com várias tabelas, eu daria um soco em quem fizesse isso aqui na empresa ^^ Use LEFT JOIN, INNER JOIN, etc... ^^
  8. Já resolveu? Pelo que testei, esse código retornará o que precisa SELECT * FROM (SELECT CODIGO,DESCRICAO,COD2,MIN(SEM_ENGATE) AS SEM_ENGATE FROM veiculoLEFT OUTER JOIN (SELECT CODIGO_VINCULO AS COD2,DESENGATADO AS SEM_ENGATE FROM veiculo WHERE TIPO = 2) AS S1 ON COD2 = CODIGOWHERE TIPO = 1GROUP BY CODIGO) AS S1 WHERE COD2 IS NULL OR SEM_ENGATE = 1; Lembrando que fiz em mysql, então talvez precise de um ajuste nas colunas retornadas devido ao GROUP BY (já que o mysql retorna colunas que não estão no group by e que não usam função de agrupamento, e o sql server não (e talvez o postgree tb não)) Em SQLSERVER funcionou assim: CREATE TABLE veiculo ( codigo integer, tipo character(1), descricao character varying(50), codigo_vinculo integer, desengatado int, constraint pk_veiculo PRIMARY KEY (codigo), constraint fk_veiculo_vinculo FOREIGN KEY (codigo_vinculo) REFERENCES veiculo (codigo)); INSERT INTO veiculo (codigo, tipo, descricao, codigo_vinculo, desengatado) VALUES (1, '1', 'CAVALO 1', NULL, NULL);INSERT INTO veiculo (codigo, tipo, descricao, codigo_vinculo, desengatado) VALUES (2, '1', 'CAVALO 2', NULL, NULL);INSERT INTO veiculo (codigo, tipo, descricao, codigo_vinculo, desengatado) VALUES (3, '1', 'CAVALO 3', NULL, NULL);INSERT INTO veiculo (codigo, tipo, descricao, codigo_vinculo, desengatado) VALUES (8, '1', 'CAVALO 4', NULL, NULL); INSERT INTO veiculo (codigo, tipo, descricao, codigo_vinculo, desengatado) VALUES (4, '2', 'CARRETA 1', NULL, 0);INSERT INTO veiculo (codigo, tipo, descricao, codigo_vinculo, desengatado) VALUES (5, '2', 'CARRETA 2', 1, 1);INSERT INTO veiculo (codigo, tipo, descricao, codigo_vinculo, desengatado) VALUES (6, '2', 'CARRETA 3', 2, 0);INSERT INTO veiculo (codigo, tipo, descricao, codigo_vinculo, desengatado) VALUES (7, '2', 'CARRETA 4', 1, 0);INSERT INTO veiculo (codigo, tipo, descricao, codigo_vinculo, desengatado) VALUES (9, '2', 'CARRETA 5', 8, 1);INSERT INTO veiculo (codigo, tipo, descricao, codigo_vinculo, desengatado) VALUES (10, '2', 'CARRETA 6', 8, 1); SELECT COD ,DESCRICAO FROM ( SELECT CODIGO AS COD ,COD2 ,MIN(SEM_ENGATE) AS SEM_ENGATE FROM veiculo LEFT OUTER JOIN ( SELECT CODIGO_VINCULO AS COD2 ,DESENGATADO AS SEM_ENGATE FROM veiculo WHERE TIPO = 2 ) AS S1 ON COD2 = CODIGO WHERE TIPO = 1 GROUP BY CODIGO,COD2 ) AS S1INNER JOIN veiculo ON CODIGO = CODWHERE COD2 IS NULL OR SEM_ENGATE = 1;
  9. Olá ^^ tabela auto incremento deve ter índice, e esse seu problema. Tente assim: create table ingrediente( cod_receita integer not null, seq_ingrediente integer not null auto_increment, descricao varchar(500), quantidade integer, unidade integer, key seu_indice(seq_ingrediente), foreign key (cod_receita) references receita(cod_receita), primary key(cod_receita, seq_ingrediente));
  10. Olá, acho que tem 2 erros: 1 - O nome da coluna é o mesmo nome da tabela lida 2 - Está tentando usar um nome criado "em tempo de execução" como falo, em uma condição where Pro primeiro problema, não tem nem o que falar, mude o nome da coluna Pro segundo problema, tem duas soluções fazer novamente o CONCAT no WHERE ou fazer um select externo, e nesse select externo você aplicaria o where forma 01 select concat(manufacturer.name, ' ', model.name) as model_001 from manufacturer, model where manufacturer.id = model.manufacturer_id and concat(manufacturer.name, ' ', model.name) like '%gol%' forma 02 select * from (select concat(manufacturer.name, ' ', model.name) as model_001 from manufacturer, model where manufacturer.id = model.manufacturer_id ) as s1WHERE model_001 like '%gol%'
  11. Olá, eu recomendaria você instalar e mexer no mysql, é só baixar esse pacotão, ir dando next em tudo basicamente, e boa vai ser instalado o workbench, mas é legal você iniciar pelo prompt para ir desbravando ^^ http://dev.mysql.com/downloads/file.php?id=451577 Mas...... pelo que vejo de anúncios de emprego, se fosse você, tentaria me mexer com sql server ou oracle.
  12. Olá Caguera. Qual o seu problema específico com Function? Não dá para falar quais funções você precisa com base nas tabelas e dados que você possui, acredito que não existe nenhuma norma quanto a isso, por isso digo que você cria com base em suas necessidades. Essa function que você fez, está estranha. Você está passando como parâmetro o valor do salário, e está somando o salário de todo mundo que recebe exatamente o que foi passado por parâmetro. O certo seria: Passar por parâmetro o código do funcionário, e obter o salário dele. O que significa esse trecho? .. IN Funcionario.Salario%type..
  13. Olá, pesquise sobre PREPARE STATEMENT, é isso que você precisa: Segue um exemplo de como usar: SET @QUERY := CONCAT("CREATE TABLE TESTE","_123","(A INT)");PREPARE stmt FROM @QUERY;EXECUTE stmt;DEALLOCATE PREPARE stmt;
  14. Certo, apesar de crer que não há diferença quanto a isso, mas pela forma que você fala, acredito que já tenha confirmado sua afirmação, neste caso me desculpo. Abraço.
  15. Não deu certo desinstalando o mysql, e instalando ele novamente definindo uma nova senha? DIF, o comando mysqladmin para alterar senha, você deve saber a senha anterior para conseguir realizar isso, por isso acho que não dará certo (falando em windows) mysqladmin -u root -p password "teste" -h localhost- após isso você digitará a senha ou já especifica no comando
  16. Oi Carlos, tinha respondido mas apaguei, pois fazia tempo, e só agora remexendo e-mail lembrei como resolvi esse problema... Tentei resetar senha e tudo mais, usando as formas abaixo, mas não funcionou, talvez devido a versão do MySQL (talvez versões mais antigas esse método possa funcionar). Esse método abaixo, você para o serviço, inicia ele passando uns parâmetros, entra na base de dados sem usar senha, mas as alterações parecem que ocorrem em um ambiente virtual, e não se aplica a base real quando você volta a usá-la pra valer. Bom, chega de falação..... só consegui resolver isso instalando o mysql novamente. Faça um backup dos seus dados, copiando os arquivos físicos, apenas por garantia, após isso, instale o mysql novamente, por cima do já existente. Para saber onde ficam os dados físicos, você pode fazer "SELECT @@datadir". Para fazer esse SELECT, você poderia logar da forma abaixo, sem senha.. RESETAR SENHA DO ROOT SENHA ROOT FORMA 1: 01-CRIAR AQUIVO TEXTO COM O CONTEÚDO ABAIXO mysql-init.txt = linha1:UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root'; linha2:FLUSH PRIVILEGES; 02-mysqld --skip-grant-tables --defaults-file="C:\\ProgramData\\MySQL\\MySQL Server 5.6\\my.ini" --init-file="C:\\mysql-init.txt" 03-parar processo mysqld.exe FORMA 2: 01-abrir DOS 02-executar na pasta do mysql: mysqld --skip-grant-tables --defaults-file="C:\\ProgramData\\MySQL\\MySQL Server 5.6\\my.ini" --init-file="C:\\mysql-init.txt" 03-dos vai ficar travado com o serviço 04-abrir nova janela do DOS 05-executar na pasta do mysql: mysql -u root 06-use mysql; 07-UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root'; 08-FLUSH PRIVILEGES; 09-quit; 10-parar processo mysqld.exe Essa é uma anotação antiga minha, se não entender ou não der certo, me avise que lhe explico, é fácil (pelo menos no windows)
  17. Hmmmmmm, bug do milênio então, hehehe Bom, muito estranho isso, nem sei o que falar, principalmente pois não conheço esse TERADATA. Existe uma empresa q se chama TERADATA, eu conclui q é dela esse software q você usa, e os programas deles são voltados para isso, espero não ter errado, hehehe http://pt.wikipedia.org/wiki/Teradata
  18. Olá Okeu, bom, vendo melhor e pensando que essa vírgula é apenas uma máscara para o campo valor, não há erro algum. Pois veja: O campo é DECIMAL( 09 , 03).... ou seja, 9 inteiros e 3 decimais O select do campo sem cast, retorna com 3 zeros a direita, está correto, pois são as casas decimais Usando o CAST FLOAT(09), você define a coluna como não havendo casas decimais, aí retorna sem as casas decimais, totalmente certo também. Agora se em uma versão anterior não exibia com as casas decimais quando estas estivessem zeradas, talvez seja isso que você falou, questão de configurar. Vi que esta é uma ferramenta de Data Warehouse, infelizmente não conheço este produto.
  19. Olha, não sei se é MySQL ou o que, mas baseando por isso (e talvez seja esse o caso) o ponto decimal usado em linguagens de programação e linguagens de banco de dados, é o PONTO "." e não a vírgula "," Não sei o porque sua consulta retornou virgula como ponto decimal, talvez isso tenha afetado o CAST tente: SELECT ITEM_CUBE_QTY ,CAST( REPLACE( CAST( ITEM_CUBE_QTY AS CHAR ) , ',' , '.' ) AS DECIMAL ) AS ITEM FROM britem.item WHERE item_nbr = 100141
  20. olá, você já armazenou em um vetor cada caracter correto? agora é só ler ele ao contrário, e ir jogando cada posição em uma variável caracter para ler ao contrário o vetor, é só você fazer o LAÇO DE REPETIÇÃO iniciando com tamanho do VETOR até 1 ou seja LAÇO inicia em LEN(vetor) ATÉ 1 STEP -1 FIM DO LAÇO

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!