Fórum Fb 1.0. Ajuda com Select UNION #54314
19/12/2005
0
[list:187bc4ee41][*:187bc4ee41]ID_PROPRIETARIO
[*:187bc4ee41]PNUMBER
[*:187bc4ee41]DESCR_PNUMBER
[*:187bc4ee41]QTDE_ENTRADA
[*:187bc4ee41]QTDE_SAIDA[/list:u:187bc4ee41]
segue o select, mas, ainda errado:
SELECT NFEC.ID_PROPRIETARIO, NFEI.PNUMBER, PROD.DESCR_PNUMBER, SUM(NFEI.QTDE_PRODUTO) AS QTDE_ENTRADA FROM KSR_NFE NFEC, KSR_NFE_IT NFEI, PNUMBER PROD, TB_NOSSA_NFE ENTR WHERE NFEC.NUM_NFE = NFEI.NUM_NFE AND NFEC.SERIE_NFE = NFEI.SERIE_NFE AND NFEC.ID_FORNECEDOR = NFEI.ID_FORNECEDOR AND NFEI.PNUMBER = PROD.PNUMBER AND ENTR.NNUMERO = NFEC.NUM_NFE AND NFEC.SERIE_NFE = ´IN´ AND ENTR.SSTATUS = ´F´ GROUP BY NFEC.ID_PROPRIETARIO, NFEI.PNUMBER, PROD.DESCR_PNUMBER UNION ALL SELECT NFSC.ID_PROPRIETARIO, NFSI.PNUMBER, PROD.DESCR_PNUMBER, SUM(NFSI.QTDE) AS QTDE_SAIDA FROM KSR_NFS NFSC, KSR_NFS_IT NFSI, PNUMBER PROD, TB_NOSSA_NFS SAID WHERE NFSC.NUM_NFS = NFSI.NUM_NFS AND NFSC.SERIE_NFS = NFSI.SERIE_NFS AND NFSI.PNUMBER = PROD.PNUMBER AND SAID.NNUMERO = NFSC.NUM_NFS AND NFSC.SERIE_NFS = ´IN´ AND SAID.SSTATUS = ´F´ GROUP BY NFSC.ID_PROPRIETARIO, NFSI.PNUMBER, PROD.DESCR_PNUMBER ORDER BY 1,2
o que eu quero é que venha o campo qtde_entrada e qtde_saida, dai pensei assim:
SELECT NFEC.ID_PROPRIETARIO, NFEI.PNUMBER, PROD.DESCR_PNUMBER, SUM(NFEI.QTDE_PRODUTO) AS QTDE_ENTRADA, 0 as QTDE_SAIDA FROM KSR_NFE NFEC, KSR_NFE_IT NFEI, PNUMBER PROD, TB_NOSSA_NFE ENTR WHERE NFEC.NUM_NFE = NFEI.NUM_NFE AND NFEC.SERIE_NFE = NFEI.SERIE_NFE AND NFEC.ID_FORNECEDOR = NFEI.ID_FORNECEDOR AND NFEI.PNUMBER = PROD.PNUMBER AND ENTR.NNUMERO = NFEC.NUM_NFE AND NFEC.SERIE_NFE = ´IN´ AND ENTR.SSTATUS = ´F´ GROUP BY NFEC.ID_PROPRIETARIO, NFEI.PNUMBER, PROD.DESCR_PNUMBER UNION ALL SELECT NFSC.ID_PROPRIETARIO, NFSI.PNUMBER, PROD.DESCR_PNUMBER, 0 AS QTDE_ENTRADA, SUM(NFSI.QTDE) AS QTDE_SAIDA FROM KSR_NFS NFSC, KSR_NFS_IT NFSI, PNUMBER PROD, TB_NOSSA_NFS SAID WHERE NFSC.NUM_NFS = NFSI.NUM_NFS AND NFSC.SERIE_NFS = NFSI.SERIE_NFS AND NFSI.PNUMBER = PROD.PNUMBER AND SAID.NNUMERO = NFSC.NUM_NFS AND NFSC.SERIE_NFS = ´IN´ AND SAID.SSTATUS = ´F´ GROUP BY NFSC.ID_PROPRIETARIO, NFSI.PNUMBER, PROD.DESCR_PNUMBER ORDER BY 1,2
so que nao pega
Invalid token. Dynamic SQL Error. SQL error code = -104. Invalid command. Data type unknown.
Alguém saberia oque pode ser? :?
Otto
Curtir tópico
+ 0Posts
19/12/2005
Bferreira
Ex.
select NFEC.ID_PROPRIETARIO, [b:018565005f]-- se for inteiro[/b:018565005f]
NFEI.PNUMBER, -- [b:018565005f]se for varchar(20)[/b:018565005f]
PROD.DESCR_PNUMBER,
SUM(NFEI.QTDE_PRODUTO) AS QTDE_ENTRADA,
0 as QTDE_SAIDA
...
union
select NFSC.ID_PROPRIETARIO, [b:018565005f]-- tem que ser inteiro tbm[/b:018565005f]
NFSI.PNUMBER, -- [b:018565005f]tem que ser varchar(20) tbm[/b:018565005f]
PROD.DESCR_PNUMBER,
0 AS QTDE_ENTRADA,
SUM(NFSI.QTDE) AS QTDE_SAIDA
Caso algum dos valores forem d tipos diferentes esse erro será retornado.
Espero ter ajudado...
Gostei + 0
19/12/2005
Emerson Nascimento
tente algo assim:
SELECT NFEC.ID_PROPRIETARIO, NFEI.PNUMBER, PROD.DESCR_PNUMBER, SUM(NFEI.QTDE_PRODUTO) AS QTDE_ENTRADA, cast(0 as float) as QTDE_SAIDA FROM KSR_NFE NFEC, KSR_NFE_IT NFEI, PNUMBER PROD, TB_NOSSA_NFE ENTR WHERE NFEC.NUM_NFE = NFEI.NUM_NFE AND NFEC.SERIE_NFE = NFEI.SERIE_NFE AND NFEC.ID_FORNECEDOR = NFEI.ID_FORNECEDOR AND NFEI.PNUMBER = PROD.PNUMBER AND ENTR.NNUMERO = NFEC.NUM_NFE AND NFEC.SERIE_NFE = ´IN´ AND ENTR.SSTATUS = ´F´ GROUP BY NFEC.ID_PROPRIETARIO, NFEI.PNUMBER, PROD.DESCR_PNUMBER UNION ALL SELECT NFSC.ID_PROPRIETARIO, NFSI.PNUMBER, PROD.DESCR_PNUMBER, cast(0 as float) AS QTDE_ENTRADA, SUM(NFSI.QTDE) AS QTDE_SAIDA FROM KSR_NFS NFSC, KSR_NFS_IT NFSI, PNUMBER PROD, TB_NOSSA_NFS SAID WHERE NFSC.NUM_NFS = NFSI.NUM_NFS AND NFSC.SERIE_NFS = NFSI.SERIE_NFS AND NFSI.PNUMBER = PROD.PNUMBER AND SAID.NNUMERO = NFSC.NUM_NFS AND NFSC.SERIE_NFS = ´IN´ AND SAID.SSTATUS = ´F´ GROUP BY NFSC.ID_PROPRIETARIO, NFSI.PNUMBER, PROD.DESCR_PNUMBER ORDER BY 1,2
Gostei + 0
20/12/2005
Thomaz_prg
Tente fazer assim, e depois retorne informando se funcionou ou não:
SELECT NFEC.ID_PROPRIETARIO, NFEI.PNUMBER, PROD.DESCR_PNUMBER, CAST( SUM(NFEI.QTDE_PRODUTO) AS FLOAT) AS QTDE_ENTRADA, CAST( 0 AS FLOAT) as QTDE_SAIDA FROM KSR_NFE NFEC, KSR_NFE_IT NFEI, PNUMBER PROD, TB_NOSSA_NFE ENTR WHERE NFEC.NUM_NFE = NFEI.NUM_NFE AND NFEC.SERIE_NFE = NFEI.SERIE_NFE AND NFEC.ID_FORNECEDOR = NFEI.ID_FORNECEDOR AND NFEI.PNUMBER = PROD.PNUMBER AND ENTR.NNUMERO = NFEC.NUM_NFE AND NFEC.SERIE_NFE = ´IN´ AND ENTR.SSTATUS = ´F´ GROUP BY NFEC.ID_PROPRIETARIO, NFEI.PNUMBER, PROD.DESCR_PNUMBER UNION ALL SELECT NFSC.ID_PROPRIETARIO, NFSI.PNUMBER, PROD.DESCR_PNUMBER, CAST(0 AS FLOAT) AS QTDE_ENTRADA, CAST( SUM(NFSI.QTDE) AS FLOAT ) AS QTDE_SAIDA FROM KSR_NFS NFSC, KSR_NFS_IT NFSI, PNUMBER PROD, TB_NOSSA_NFS SAID WHERE NFSC.NUM_NFS = NFSI.NUM_NFS AND NFSC.SERIE_NFS = NFSI.SERIE_NFS AND NFSI.PNUMBER = PROD.PNUMBER AND SAID.NNUMERO = NFSC.NUM_NFS AND NFSC.SERIE_NFS = ´IN´ AND SAID.SSTATUS = ´F´ GROUP BY NFSC.ID_PROPRIETARIO, NFSI.PNUMBER, PROD.DESCR_PNUMBER ORDER BY 1,2
Gostei + 0
20/12/2005
Otto
Gostei + 0
20/12/2005
Otto
analisando os registros encontrados, percebi que, os produtos se repetem, veham só.
Select usado:
SELECT PROP.RAZAO_SOCIAL_PROPRIETARIO, NFEI.PNUMBER, PROD.DESCR_PNUMBER, SUM(NFEI.QTDE_PRODUTO) AS QTDE_ENTRADA, CAST(´0.00´ AS FLOAT) as QTDE_SAIDA FROM KSR_NFE NFEC, KSR_NFE_IT NFEI, PNUMBER PROD, TB_NOSSA_NFE ENTR, PROPRIETARIO PROP WHERE NFEC.NUM_NFE = NFEI.NUM_NFE AND NFEC.SERIE_NFE = NFEI.SERIE_NFE AND NFEC.ID_FORNECEDOR = NFEI.ID_FORNECEDOR AND PROP.ID_PROPRIETARIO = NFEC.ID_PROPRIETARIO AND NFEI.PNUMBER = PROD.PNUMBER AND ENTR.NNUMERO = NFEC.NUM_NFE AND NFEC.SERIE_NFE = ´IN´ AND ENTR.SSTATUS = ´F´ GROUP BY NFEC.ID_PROPRIETARIO, PROP.RAZAO_SOCIAL_PROPRIETARIO, NFEI.PNUMBER, PROD.DESCR_PNUMBER UNION ALL SELECT PROP.RAZAO_SOCIAL_PROPRIETARIO, NFSI.PNUMBER, PROD.DESCR_PNUMBER, CAST(´0.00´ AS FLOAT) AS QTDE_ENTRADA, SUM(NFSI.QTDE) AS QTDE_SAIDA FROM KSR_NFS NFSC, KSR_NFS_IT NFSI, PNUMBER PROD, TB_NOSSA_NFS SAID, PROPRIETARIO PROP WHERE NFSC.NUM_NFS = NFSI.NUM_NFS AND NFSC.SERIE_NFS = NFSI.SERIE_NFS AND PROP.ID_PROPRIETARIO = NFSC.ID_PROPRIETARIO AND NFSI.PNUMBER = PROD.PNUMBER AND SAID.NNUMERO = NFSC.NUM_NFS AND NFSC.SERIE_NFS = ´IN´ AND SAID.SSTATUS = ´F´ GROUP BY NFSC.ID_PROPRIETARIO, PROP.RAZAO_SOCIAL_PROPRIETARIO, NFSI.PNUMBER, PROD.DESCR_PNUMBER
Imagem dos registros:
[URL=http://img16.imageshack.us/my.php?image=untitled17jr.gif][img:a8f9ad416e]http://img16.imageshack.us/img16/9454/untitled17jr.th.gif[/img:a8f9ad416e][/URL]
é o seguinte, era pra em apenas uma linha, vir o valor da coluna qtde_entrada e qtde_saida, so que, vem uma linha com a coluna qtde_entrada preenchida e qtde-saida com 0, e na outra linha o inverso, na imagem vai da pra voces perceberem.
:oops:
Gostei + 0
20/12/2005
Thomaz_prg
Bom, pra você não ter que refazer o select, você pode criar uma view, usando o select, e dar apenas um select na view:
-para criar a view:
Create View NomeDaView( campo1,campo2...)
As
Select ...
-para visualizar da forma como você quer:
SELECT RAZAO_SOCIAL_PROPRIETARIO, PNUMBER, DESCR_PNUMBER, SUM(QTDE_ENTRADA), SUM(QTDE_SAIDA) FROM SUAVIEW GROUP BY 1,2,3
Gostei + 0
21/12/2005
Otto
agora sim vou ter um natal feliz :lol:
valeu pessoal.. abraço :P
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)