Ir ao conteúdo
  • Cadastre-se

Norberto Witt

Membro Júnior
  • Posts

    5
  • Cadastrado em

  • Última visita

Reputação

0
  1. Tenta assim SELECT piloto.nome AS NOME, piloto.sexo AS SEXO, piloto.pnacionalidade AS NACIONALIDADE FROM piloto piloto where pnacionalidade NOT IN ('brasileira','africana') INNER JOIN disputa disputa ON piloto.num = disputa.pnum AND disputa.colocacao = 1 AND disputa.data BETWEEN '2000' AND '2003'
  2. Pessoal, boa tarde! Eu trabalho em uma empresa de produção de cigarros e que vende também outros produtos. O volume do cigarro é calculado de uma forma diferente do volume dos demais produtos. Observe a consulta abaixo: Nesse caso temos o mesmo varejo, 0719272, onde o cliente comprou 2 tipos de produtos (Cigarro e Outro). Quero consolidar, em uma só linha, essas duas informações mas não estou sabendo como. O ideal seria que ficasse todos os varejos assim, em uma só linha: Segue a consulta: use t001030 select distinct d152codcli as PDV, case when tipo.d505dsctip = 'CIGARRO' then cast(sum(itens.d153qtdprd) as decimal(10,2)) else 0 end as VOLUME_CIGARRO, case when tipo.d505dsctip <> 'CIGARRO' then cast(sum(itens.d153qtdprd) as decimal(10,2)) else 0 end as VOLUME_OUTROS from d152pedid pedido inner join d153iteped itens on pedido.D152IDDPED = itens.D153IDDPED inner join d502prd produto on itens.D153CODPRD = produto.D502CODPRD inner join d505tip tipo on produto.D502CODTIP = tipo.D505CODTIP group by pedido.d152codcli, tipo.d505dsctip order by pedido.d152codcli Desde já agradeço pela atenção!
  3. Pessoal, fui pesquisando e consegui uma resposta. Criei um Cursor onde faz a varredura dos bancos e insere os dados do Select em uma determinada tabela. DELETE FROM [PATESTE].[dbo].[Intraday] DECLARE @DB_NAME sysname DECLARE @DB_NAME_VARCHAR VARCHAR(100) DECLARE c2 CURSOR READ_ONLY FOR SELECT name FROM master..sysdatabases WHERE name NOT IN ('master', 'tempdb', 'model', 'msdb','DISTPA','PATESTE','S005025') OPEN c2 FETCH NEXT FROM c2 INTO @DB_NAME WHILE @@FETCH_STATUS = 0 BEGIN EXEC(' INSERT INTO [PATESTE].[dbo].[Intraday] SELECT DISTINCT clientes.D100CODCLI, '''+@DB_NAME+''', convert(varchar, GETDATE(), 103), convert(varchar, pedido.D152DTAETGPED, 103), SUM(soma.D153QTDPRD), pedido.D152VALPED FROM ['+@DB_NAME+'].[dbo].[D100CLIENTE] clientes INNER JOIN ['+@DB_NAME+'].[dbo].[D152PEDID] pedido ON clientes.D100CODCLI = pedido.D152CODCLI INNER JOIN ['+@DB_NAME+'].[dbo].[D153ITEPED] codProd ON pedido.D152IDDPED = codProd.D153IDDPED INNER JOIN ['+@DB_NAME+'].[dbo].[D502PRD] dsProd ON codProd.D153CODPRD = dsProd.D502CODPRD INNER JOIN ['+@DB_NAME+'].[dbo].[D505TIP] tipo ON dsProd.D502CODTIP = tipo.D505CODTIP INNER JOIN ['+@DB_NAME+'].[dbo].[D153ITEPED] soma ON pedido.D152IDDPED = soma.D153IDDPED GROUP BY clientes.D100CODCLI, convert(varchar, pedido.D152DTAETGPED, 103), pedido.D152VALPED ') FETCH NEXT FROM c2 INTO @DB_NAME END CLOSE c2 DEALLOCATE c2 Muito obrigado pela ajuda, até mais!
  4. Pessoal, tudo bem? Então, aqui na empresa onde trabalho temos uma tabela de preço em nosso banco de dados onde o preço de cada produto é atualizado de acordo com o tempo. Nós guardamos o preço anterior para fim de histórico e sabemos o preço mais atualizado por conta de uma coluna onde informa a data do início da vigência do preço. Preciso fazer um select onde me mostre o preço mais atualizado, mas não estou achando a forma possível. A ideia seria algo assim: select D504CODPRD, D504PRCATA, D504DTAINIVIG from D504PRECO where D504DTAINIVIG = max (D504DTAINIVIG) Veja o exemplo abaixo: Esta é nossa tabela onde existem as colunas Código do Produto, Data do Início da Vigência e o preço de catálogo. Neste caso aqui o produto 632 tivemos 5 alterações de preço, onde o preço mais recente é a partir do dia 22/07/2016. Preciso fazer um select onde me retorne o preço dos produtos sem duplicar, me apresentando sempre o produto com a data de vigência mais recente.
  5. Olá pessoal, tudo bem? Pois então, deem uma olhada no print em anexo. Como vocês podem ver existem vários bancos. Neste print estou consultando alguns dados cruzados do banco S001001. Eu preciso retornar estes mesmos valores também dos demais bancos e preciso que fique tudo na mesma consulta, ou seja, ali nos valores retornados preciso que apareça a lista de varejos do banco S001001, S001002, S001003, e assim por diante... Os valores devem vir no mesmo retorno, sem criar uma nova tabela. Exemplo do que preciso: Esse arquivo nós consolidamos manualmente, preciso que a consulta seja feita em todos os bancos (S001001, S001002, S001003...) e que sejam retornados na mesma consulta. Caso eu repita o código, apenas alterando o "USE" para o banco da sequência, ele retorna os valores, mas cada retorno, de cada banco, vem em uma tabela diferente, como podem ver: Neste caso o programa retorno os dados do banco S001001 e S001002, só que em tabelas/abas diferentes. Preciso que venha tudo no mesmo retorno.

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...