Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera estou com o seguinte problema de select
Tenho um Select que soma todos os produtos que foram vendidos em um periodo.
sql1 =
"SELECT
CADASTRO_CLI_FOR.NOME_CLIFOR,
PRODUTOS.PRODUTO,
Sum(LOJA_VENDA_PRODUTO.QTDE) AS 'SQTDE'E outro que mostra meu estoque atual
sql2 =
"SELECT
ESTOQUE_PRODUTOS.FILIAL,
ESTOQUE_PRODUTOS.PRODUTO,
ESTOQUE_PRODUTOS.ESTOQUEEle completo
<%
sql1 =
"SELECT
CADASTRO_CLI_FOR.NOME_CLIFOR,
PRODUTOS.PRODUTO,
Sum(LOJA_VENDA_PRODUTO.QTDE) AS 'SQTDE'sql2 =
"SELECT
ESTOQUE_PRODUTOS.FILIAL,
ESTOQUE_PRODUTOS.PRODUTO,
ESTOQUE_PRODUTOS.ESTOQUEset objRS2 = conexao.execute(sql2) 'executa a cláusula sql
set objRS1 = conexao.execute(sql1) 'executa a cláusula sql
WHILE NOT OBJRS1.EOF
%>
<%=objRS1("nome_clifor")%> - <%=objRS1("produto")%> - <%=objRS1("sqtde")%>--<%=objRS2("ESTOQUE")%><br>
<%
OBJRS1.MoveNext
Wend
%>
o que acontece...
não estou conseguindo trazer o estoque correto que se refere ao produto.
Por Exemplo:
ANALIA FRANCO (NOVA) - 09955 - 2--5
Nesta minha loja no produto 09955 eu vendi 2 produtos no periodo porem esse 5 que seria o estoque atual está errado pois eu tenho 22
se eu fizer uma consulta no meu banco SQL usando filtro para este produto aparece o estoque correto.
O que estou fazendo de errado ????
Obrigado.
>
Tentou colocar um movenext no rs2 tb ?
Já sim mas não rola, ele mudar de valor mas não passa o valor correto.
E se criar um valor no where do rs2 condicionando a só pegar as informações referente ao produto do rs1?
eu faria algo parecido com o que está abaixo. possivelmente não funcione pois não sei os relacionamentos corretos das tabelas e percebi que está assossiando o nome do produto e não o código, seria bom refazer essa parte
SELECT
C.NOME_CLIFOR,
P.PRODUTO,
SUM(L.QTDE) AS 'SQTDE',
E.FILIAL,
E.ESTOQUE,
E.PRODUTO
FROM
CADASTRO_CLI_FOR C INNER JOIN
LOJA_VENDA_PRODUTO L ON C.COD_CLIFOR = L.CODIGO_FILIAL INNER JOIN
PRODUTOS P ON P.PRODUTO = L.PRODUTO INNER JOIN
(
SELECT
E.FILIAL,
E.PRODUTO,
E.ESTOQUE
FROM
ESTOQUE_PRODUTOS E
WHERE
E.ESTOQUE <> '0' AND
E.PRODUTO <> ''
) E ON E.PRODUTO = L.PRODUTO
WHERE
P.PRODUTO <> '' AND
L.DATA_VENDA >= '2009-11-09' AND
L.DATA_VENDA <= '2009-11-13' AND
C.NOME_CLIFOR = 'ANALIA FRANCO (NOVA)'
GROUP BY
C.NOME_CLIFOR,
P.PRODUTO,
E.FILIAL,
E.ESTOQUE,
E.PRODUTO
ORDER BY
NOME_CLIFOR ASC
mas se não quiser assim, o seu deve estar exibindo errado pois não estás colocando o produto no WHERE do estoque
>
E se criar um valor no where do rs2 condicionando a só pegar as informações referente ao produto do rs1?
Eu tinha feito assim:
WHILE NOT OBJRS1.EOF
WHILE NOT OBJRS2.EOF
%>
<%=objRS1("nome_clifor")%> - <%=objRS1("produto")%> - <%=objRS1("sqtde")%>--<%=objRS2("ESTOQUE")%><br>
<%
OBJRS2.MoveNext
WEND
OBJRS1.MoveNext
Wend
%>
Como faço para concatenar dados de 2 tabelas:
set rs2=server.createobject("adodb.recordset")
stct="SELECT * from peddet where idpedido='1'"'&Session("pedid")
set rs2 = conn.execute(stct)
set rs3=server.createobject("adodb.recordset")
DO WHILE NOT rs2.EOF
proct="SELECT nome from produtos where id="&rs2("prodid")
set rs3 = conn.execute(proct)
response.write "<tr><td colspan='2'>"&rs3("nome")&"</td><td>"&rs2("qtd")&"</td><td>"&FormatNumber(rs2("preco"),2)&"</td></tr>"
rs2.movenext
loop
faz um INNER JOIN na tabela
o que eu postei deu que erro?
>
o que eu postei deu que erro?
Desculpa a demora.
Eu estava tentando entender o que você fez mas não consegui.
É exatamente o que você fez porem como o Produto tem cores no que você fez ele me separa por cor e na realidade teria que agrupar tambem...
Eu tenho os selects que consigo consultar exatamente o que quero porem não estou conseguindo agrupar com o inner Join será que você poderia me dar uma força.
E se puder me indicar algum lugar que eu possa entender como funciona o inner join.
Descubro o quanto foi vendido
SELECT
CADASTRO_CLI_FOR.NOME_CLIFOR,
PRODUTOS.PRODUTO,
Sum(LOJA_VENDA_PRODUTO.QTDE) AS 'QTDE DE VENDA'
FROM
CADASTRO_CLI_FOR,
LOJA_VENDA_PRODUTO,
PRODUTOS
WHERE
PRODUTOS.PRODUTO = LOJA_VENDA_PRODUTO.PRODUTO
AND CADASTRO_CLI_FOR.COD_CLIFOR = LOJA_VENDA_PRODUTO.CODIGO_FILIAL
AND NOME_CLIFOR='ANALIA FRANCO (NOVA)'
AND PRODUTOS.PRODUTO='17584'
GROUP BY
CADASTRO_CLI_FOR.NOME_CLIFOR,
PRODUTOS.PRODUTO
ORDER BY NOME_CLIFOR ASC
Descubro o quanto tenho no estoque
SELECT
ESTOQUE_PRODUTOS.FILIAL AS 'FILIAL',
ESTOQUE_PRODUTOS.PRODUTO,
Sum(ESTOQUE_PRODUTOS.ESTOQUE) AS 'ESTOQUE TOTAL'
FROM
ESTOQUE_PRODUTOS
GROUP BY
ESTOQUE_PRODUTOS.FILIAL,
ESTOQUE_PRODUTOS.PRODUTO
HAVING
(ESTOQUE_PRODUTOS.FILIAL='analia franco (nova)')
AND (ESTOQUE_PRODUTOS.PRODUTO='17584')
Descubro o quanto foi feito de troca
SELECT
LOJA_VENDA_TROCA.CODIGO_FILIAL,
LOJA_VENDA_TROCA.PRODUTO,
Sum(LOJA_VENDA_TROCA.QTDE) AS 'QTDE DE TROCA'
FROM
LOJA_VENDA_TROCA LOJA_VENDA_TROCA
GROUP BY
LOJA_VENDA_TROCA.CODIGO_FILIAL,
LOJA_VENDA_TROCA.PRODUTO
HAVING
(LOJA_VENDA_TROCA.CODIGO_FILIAL='000024')
AND (LOJA_VENDA_TROCA.PRODUTO='17584')
Obrigado pela força.
vctem relacionamento entre as tabelas, na verdade, a impôrtancia de uma modelagem de dados bem definida até os mínimos detalhes, como os campos de relacionamentos, um velho ditado diz, que um relacionamento bem definido é a alma do aplicativo, pois daí saem todas as consultas e operações com o banco, influenciando diretamente na otimização e performance do aplicativo
Tentou colocar um movenext no rs2 tb ?