Clique abaixo para nos ajudar
Conectar-se

Esqueci minha senha

Estamos no Facebook
Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Quem está conectado
25 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 25 Visitantes :: 2 Motores de busca

Nenhum

[ Ver toda a lista ]


O recorde de usuários online foi de 468 em 1/3/2012, 10:43
TRY BEGIN E FLOCK()

17/4/2017, 10:32 por AJC

Pessoal estou tendo alguns problemas de gravação em rede, estou usando
try begin, mas vi algo na …

Comentários: 0

Exportar Dados Campo Memo Tabela DBF

10/4/2017, 10:28 por fcampos

Olá bom dia.

Estou tentando exportar os dados de algumas tabelas em formato dbf pelo foxpro.
O …

Comentários: 2

Função EVL()

8/4/2017, 12:18 por Clebervfp

Bom dia a todos.
Vim compartilhar de uma Função do próprio VFP que me benefício muito.
Função …

Comentários: 0

COMO BLOQUEAR REGISTRO OU TABELA NO VISUAL FOXPRO PARA GRAVAÇÃO EM REDE

3/4/2017, 10:29 por AJC

Pessoal estou tendo um problema que acontece sempre busco na minha tabela de clientes o ultimo …

Comentários: 2

Controlar Scanner Twain

31/3/2017, 17:31 por Kleber R Bento

Estou usando o EZTW32.DLL para criar uma ferramenta que escaneia e gera PDF. Porém com esses …

Comentários: 0

Estatísticas
Temos 7065 usuários registrados
O último usuário registrado atende pelo nome de Cauby

Os nossos membros postaram um total de 48 mensagens em 25 assuntos

Duvida Instrução SQL

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Resolvido Duvida Instrução SQL

Mensagem por renatojunior2009 em 24/7/2012, 17:56

Boa tarde Galera,

Tenho a seguinte situação , tenho duas tabelas, a primeira onde lista todas minhas notas fiscais essa possui a seguinte estrutura.

Nome Tabela: tb_notas
|Campo |
numero
nomecli

Na outra tabela fica armazenado os itens da nota fiscal, com a seguinte estrutura.

Nome Tabela: tb_itens
|Campo|
numero
dtemissao
descricao
vrunit
quant
vrdesc

Estou fazendo o seguinte código.

Código:

SET ENGINEBEHAVIOR 70
SET DATE BRITISH

SELECT n.numero,n.nomecli, SUM(ROUND((i.quant*i.vrunit)-i.vrdesc,2)) as fValorTotal;
   FROM tb_nota n ;
INNER JOIN tb_itens i ON n.numero  = i.numero
WHERE dtemissao >= CTOD("01/01/2007");
INTO CURSOR tmp1

Quero que embaixo de cada nota mostre os itens (produtos) relacionados a ela , como poderia fazer isso ?

Desde já agradeço

Renato
avatar
renatojunior2009
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Duvida Instrução SQL

Mensagem por lardecristo em 25/7/2012, 01:56

Bom vou para o modo prático...kkk..... tire o SUM e coloque os campos....depois faço a totalização, ou duplique a query anterior e processada como falei no começo, e lembre-se de dar um novo nome ao cursor.
avatar
lardecristo
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Resolvido Re: Duvida Instrução SQL

Mensagem por renatojunior2009 em 25/7/2012, 08:18

[Você precisa estar registrado e conectado para ver este link.] escreveu:Bom vou para o modo prático...kkk..... tire o SUM e coloque os campos....depois faço a totalização, ou duplique a query anterior e processada como falei no começo, e lembre-se de dar um novo nome ao cursor.

Poderia me dar um exemplo ?, não entendi ao certo como fazer.
avatar
renatojunior2009
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Duvida Instrução SQL

Mensagem por Marcos Guedes em 25/7/2012, 09:36

Renato, pelo que entendi, seu problema é apenas de report, e não de SELECT.
O SELECT é bem simples:

Código:
SELECT nt.numero, nt.nomecli, it.dtEmissao, it.descricao, it.vrunit, it.quant, it.vrdesc
  FROM tb_notas nt INNER JOIN tb_itens it ON nt.numero=it.numero

E para exibir os itens abaixo das notas, você terá que agrupá-los no report.

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Resolvido Re: Duvida Instrução SQL

Mensagem por renatojunior2009 em 25/7/2012, 09:38

[Você precisa estar registrado e conectado para ver este link.] escreveu:Renato, pelo que entendi, seu problema é apenas de report, e não de SELECT.
O SELECT é bem simples:

Código:
SELECT nt.numero, nt.nomecli, it.dtEmissao, it.descricao, it.vrunit, it.quant, it.vrdesc
  FROM tb_notas nt INNER JOIN tb_itens it ON nt.numero=it.numero

E para exibir os itens abaixo das notas, você terá que agrupá-los no report.

Não marcos , quero que exiba os itens da nota abaixo de cada nota, entendeu ?
avatar
renatojunior2009
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Duvida Instrução SQL

Mensagem por alceu11 em 25/7/2012, 09:56

UM exemplo tem mais no forum
Faca uma pesquisa, encontre o topico do Portugues, vc encontar ate o video
Pedido com itens
Código:

CLOSE DATABASES all
SET SAFETY off
CREATE TABLE pedido(codigo c(4),data d(8),codcli c(4),valor n(8,2))
INSERT INTO pedido VALUES ('0001',DATE(),'0001',100)
INSERT INTO pedido VALUES ('0002',DATE()+10,'0002',100)
INSERT INTO pedido VALUES ('0003',DATE(),'0001',100)
INDEX ON CODIGO TAG CODIGO
CREATE TABLE MovPed(codped c(4),codprod c(4),quant n(4), valvend n(8,2))
INSERT INTO movped values('0001','0001',6,60)
INSERT INTO movped values('0001','0002',2,40)
INSERT INTO movped values('0002','0001',5,50)
INSERT INTO movped values('0002','0002',6,60)
INSERT INTO movped values('0002','0003',2,40)
INSERT INTO movped values('0003','0001',6,60)
INSERT INTO movped values('0003','0002',2,40)
INDEX ON CODPED TAG CODPED
CREATE table produto(codigo c(4),descricao c(30),valor n(8,2))
INSERT INTO produto values('0001','CIMENTO TIPO 1 ',10)
INSERT INTO produto values('0002','AREIA TIPO 2 ',10)
INSERT INTO produto values('0003','PEDRA TIPO 2 ',10)
DEFINE WINDOW pedidos FROM 0,0 TO 18,125 TITLE 'pedidos' FLOAT close
DEFINE WINDOW movimento FROM 20,0 TO 40,125 TITLE 'movimento' FLOAT close
CLOSE DATABASES ALL
SELECT 0
USE movped
SET ORDER TO codped
*************RENATO JR BAIXA A APOSTILA loGICA ESTA SECAO TUTORIAIS
SELECT 0
USE pedido
SET ORDER TO codigo
SET RELATION TO codigo INTO movped additive

SELECT movped
ACTIVATE WINDOW movimento
BROWSE NOWAIT IN WINDOW movimento

SELECT pedido
ACTIVATE WINDOW pedidos
BROWSE IN WINDOW pedidos

CLOSE ALL
****************
*Scather (ler) e Gather (gravar)
CLOSE DATABASES ALL
SET SAFETY OFF
CREATE TABLE CATALOGO (CODIGO N(4),NOMES C(30))
CREATE TABLE CATA9 (CODIGO N(4),NOMES C(30))
FOR I=1 TO 20
INSERT INTO CATA9 (CODIGO,noMES) VALUES (I,"CLIENTE "+STR(I))
ENDFOR
Close DATABASES
USE CATA9 IN 1
use CATALOGO IN 2
Select 1
Go Top
Do While !eof()
Scatter memvar

Select 2
Append Blank
Gather memvar

Select 1
Skip
Enddo
SELECT 2
BROWSE LAST
***
USE
CLOSE ALL

avatar
alceu11
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Resolvido Re: Duvida Instrução SQL

Mensagem por Marcos Guedes em 25/7/2012, 10:05

[Você precisa estar registrado e conectado para ver este link.] escreveu:
[Você precisa estar registrado e conectado para ver este link.] escreveu:Renato, pelo que entendi, seu problema é apenas de report, e não de SELECT.
O SELECT é bem simples:

Código:
SELECT nt.numero, nt.nomecli, it.dtEmissao, it.descricao, it.vrunit, it.quant, it.vrdesc
  FROM tb_notas nt INNER JOIN tb_itens it ON nt.numero=it.numero

E para exibir os itens abaixo das notas, você terá que agrupá-los no report.

Não marcos , quero que exiba os itens da nota abaixo de cada nota, entendeu ?
Não entendi!

Posta um modelo de retorno que esperas receber...

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Resolvido Re: Duvida Instrução SQL

Mensagem por renatojunior2009 em 25/7/2012, 14:43

[Você precisa estar registrado e conectado para ver este link.] escreveu:
[Você precisa estar registrado e conectado para ver este link.] escreveu:
[Você precisa estar registrado e conectado para ver este link.] escreveu:Renato, pelo que entendi, seu problema é apenas de report, e não de SELECT.
O SELECT é bem simples:

Código:
SELECT nt.numero, nt.nomecli, it.dtEmissao, it.descricao, it.vrunit, it.quant, it.vrdesc
  FROM tb_notas nt INNER JOIN tb_itens it ON nt.numero=it.numero

E para exibir os itens abaixo das notas, você terá que agrupá-los no report.

Não marcos , quero que exiba os itens da nota abaixo de cada nota, entendeu ?
Não entendi!

Posta um modelo de retorno que esperas receber...

Por exemplo:

Numero NF | Dt. Emissao | Cliente | Itens da NF | Vl. Item | Total |
000001 | 25/07/20012 | Programação Brasil | Livro A 1,00
Livro B 1,00
Livro C 1,00 3,00

Deu pra entender ?
avatar
renatojunior2009
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Duvida Instrução SQL

Mensagem por Marcos Guedes em 25/7/2012, 19:31

você quer isto, desta forma, num grid, report...?

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Resolvido Re: Duvida Instrução SQL

Mensagem por renatojunior2009 em 25/7/2012, 22:10

Resolvi Galera ....usando um cursor e um DO WHILE para inserir todos os itens da nota nele.

Obrigado a todos vocês !
avatar
renatojunior2009
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Duvida Instrução SQL

Mensagem por lardecristo em 26/7/2012, 10:19

Renato poste por favor o código que fez.
Outra coisa, o Marcos Guedes postou a Query corrigida.
Bom, vou deixar aqui uma dica use a query, porque a mesma consome mesmo tempo de processamento.

Abraços.
avatar
lardecristo
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Resolvido Re: Duvida Instrução SQL

Mensagem por renatojunior2009 em 26/7/2012, 11:12

[Você precisa estar registrado e conectado para ver este link.] escreveu:Renato poste por favor o código que fez.
Outra coisa, o Marcos Guedes postou a Query corrigida.
Bom, vou deixar aqui uma dica use a query, porque a mesma consome mesmo tempo de processamento.

Abraços.

Código:

SELECT n.fnumero,n.fempresa,n.fformulari,n.femissao,n.fcodnat,n.fnatoper,n.fdespeca,n.fnomecli,n.fvalfrete,n.fvalseguro,n.foutradesp,n.fDesServ;
   FROM notafisc n ;
WHERE femissao >= CTOD("01/01/2007");
AND n.fformulari = 2 OR n.fformulari = 1 ;
INTO CURSOR tmpNF

CREATE CURSOR Tab_Temp(fcampo1 c(6), fcampo2 c(100), fcampo3 d(8), fcampo4 c(100),fcampo5 c(100),fcampo6 c(100),fcampo7 c(100),fcampo8 n(12,2),fCampo9 n(12,2),fCampo10 c(2),fCampo11 c(2))

SELECT tmpNF
GO TOP
SCAN
   lcNumCFOP = tmpNF.fcodnat
   lcNomeCFOP = IIF(SEEK(ALLTRIM(lcNumCFOP),"operacoe","chave1"),operacoe.fdescricao,"")
   lcDescGeral = tmpNF.fDespeca
   INSERT INTO Tab_Temp (fcampo1,fcampo2,fcampo3,fcampo4,fcampo5,fcampo6) VALUES (tmpNF.fnumero,tmpNF.fempresa,tmpNF.femissao,lcNumCFOP,lcNomeCFOP,tmpNF.fnomecli)
   SELECT itemnota
   SET ORDER TO chave1
   SEEK ALLTRIM(tmpNF.fNumero) + tmpNF.fEmpresa + STR(tmpNF.fformulari,1)
   lnValorNF = 0
   DO WHILE !EOF() AND tmpNF.fnumero = ItemNota.fNumero AND tmpNF.fEmpresa = ItemNota.fEmpresa AND tmpNF.fformulari = ItemNota.fFormulari
      lcDescricao = ALLTRIM(itemnota.fdescricao)
      lcCodCFOP = TransForm(itemnota.fcfop,"@R 9,999")
      lcDescCFOP = IIF(SEEK(ALLTRIM(lcCodCFOP),"operacoe","chave1"),operacoe.fdescricao,"")
      lcCSTPis = itemnota.fcstpis
      lcCSTCof = itemnota.fcstcof
      lnValorItem = ROUND((itemnota.fquant * itemnota.funitario)-itemnota.fDesconto,2)
      lnValorNF = (lnValorNF + lnValorItem)
      INSERT INTO Tab_Temp (fCampo4,fCampo5,fCampo7,fCampo8,fCampo10,fCampo11) VALUES (lcCodCFOP,lcDescCFOP,lcDescricao,lnValorItem,lcCSTPis,lcCSTCof)
      SKIP
    ENDDO
    lnValorNF = lnValorNF + (tmpNF.fvalfrete + tmpNF.fvalseguro + tmpNF.foutradesp) - tmpNF.fDespeca - tmpNF.fDesServ
    INSERT INTO Tab_Temp (fCampo9) VALUES (lnValorNF)
   SELECT tmpNF
ENDSCAN
avatar
renatojunior2009
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Duvida Instrução SQL

Mensagem por lardecristo em 26/7/2012, 12:38

Gostei da sua solução, mas posso explorar um pouco mais?
Eu gosto de explorar todas as possibilidades, para ampliar o conhecimento e soluções para o mesmo.
Perguntas:
A impressão é numa impressora matricial? Se sim, você está usando o comando "???"?
Ou você está usando o Report do VFP para impressão em Jato/Laser?
Qual versão do VFP?

Abraços.
avatar
lardecristo
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Resolvido Re: Duvida Instrução SQL

Mensagem por renatojunior2009 em 26/7/2012, 16:45

[Você precisa estar registrado e conectado para ver este link.] escreveu:Gostei da sua solução, mas posso explorar um pouco mais?
Eu gosto de explorar todas as possibilidades, para ampliar o conhecimento e soluções para o mesmo.
Perguntas:
A impressão é numa impressora matricial? Se sim, você está usando o comando "???"?
Ou você está usando o Report do VFP para impressão em Jato/Laser?
Qual versão do VFP?

Abraços.


lardecristo Não é para impressão , com o cursor criado , exportei para XLS , aproveitando a deixa, como faria para exportar para XLSX, tendo em vista que existe uma limitação quanto ao número de linhas.
avatar
renatojunior2009
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum