No meu banco de dados tenho registro de estoque de alguns produtos e suas respectivas unidades.
Eu gostaria que a query só trouxesse o último registro dos produtos daquela unidade.
Utilizo Mysql como banco de dados.
Segue minha Query abaixo:
SELECT
A.ID_ESTOQUE,
D.CNES,
D.NOME_UNIDADE,
B.COBERTURA,
A.QTD,
C.DATA_REGISTRO
FROM
lesao_rel_estoque_coberturas A
INNER JOIN
lesao_coberturas B ON A.ID_COBERTURA = B.ID_COBERTURA
INNER JOIN
lesao_estoque C ON A.ID_ESTOQUE = C.ID_ESTOQUE
INNER JOIN
unidades D ON C.CNES = D.CNES
ORDER BY A.ID_ESTOQUE
Bom dia
Tenho uma variável que traz vários dados de ID_LANÇAMENTO
var_dump($meus_ids);
array
0 => string '829' (length=3)
1 => string '830' (length=3)
2 => string '828' (length=3)
Preciso fazer uma soma das quantidades constantes nestes 3 lançamentos e trazer em variável, porém variável está trazendo cada quantidade em separado, ao invés da soma.
foreach($meus_ids as $item){
$Sql_lim = "SELECT SUM(CASE WHEN quantidade >= 11 then 10 else quantidade end) as quantidades_limite
FROM minha_tabela
WHERE id_lancamento = $item";
$Resultado_lim = executa($Sql_lim);
$total_registros_lim = @pg_num_rows($Resultado_lim);
while ($linha_lim = @pg_fetch_assoc($Resultado_lim)){
$quantidade_limite_consulta = $linha_lim["quantidades_limite"];
} // Fecha "while"
} // Fecha foreach
Utilizo BD Postgresql.
O total de linhas retornadas é 1, o que em tese está correto.
O problema é que ao invés de trazer a soma das quantidades, a variável está trazendo cada quantidade individualizada por lançamento. Onde posso estar errando?
select
EP.nrCNPJ AS CNPJ,
PV.nrNSU AS NSU,
convert(CHAR,PC.dtPagamento,103) AS Data_de_Pagamento,
BD.idBandeira AS Codigo_Bandeira,
BD.dsBandeira AS Descrição_Bandeira,
PC.vlPago AS Valor_do_Pagamento,
PC.nrParcela AS Quantidade_de_Parcelas,
FP.dsFormaPagamento AS Forma_Pagamento,
ST.dsStatusParcela AS Descrição_Status_Parcela
from card.tbEmpresa AS EP
LEFT JOIN card.tbPagamentoVenda AS PV ON EP.idEmpresa = PV.idEmpresa
LEFT JOIN card.tbParcela AS PC ON PV.idPagamentoVenda = PC.idPagamentoVenda
LEFT JOIN card.tbBandeira AS BD ON BD.idBandeira = PV.idBandeira
LEFT JOIN card.tbFormaPagamento AS FP ON FP.idFormaPagamento = PC.idEmpresa
LEFT JOIN card.tbMovimentoBanco AS MB ON MB.idMovimentoBanco = PC.idMovimentoBanco
LEFT JOIN card.tbStatusParcela AS ST ON ST.IdStatusParcela = PC.idStatusParcela
GROUP BY card.tbBandeira.dsBandeira
---------------------#--------------------------------
Mensage de erro ao rodar a query
Mensagem 4104, Nível 16, Estado 1, Linha 19
O identificador de várias partes "card.tbBandeira.dsBandeira" não pôde ser associado.
Criei uma procedure que está trazendo os dados certinhos com exceção de uma coluna(Caminho do Arquivo) está cortando o nome do arquivo que salvo lá. O código é esse:
<code>
CREATE PROCEDURE dbo.clientes2
@Produto_ID INT = NULL,
@Comprador_ID INT = NULL,
@NM_Token NVARCHAR(MAX) = NULL,
@DocumentoTipo INT = NULL,
@NM_CPF CHAR(20) = NULL,
@Teste INT = 0
AS
SET @Produto_ID = ISNULL(@Produto_ID, 0);
SET @Comprador_ID = ISNULL(@Comprador_ID, 0);
SET @NM_Token = RTRIM(LTRIM( ISNULL(@NM_Token, '') ));
SET @DocumentoTipo = ISNULL(@DocumentoTipo, 0);
SET @NM_CPF = RTRIM(LTRIM(@NM_CPF));
SET @Teste = ISNULL(@Teste, 1);
IF(@Teste = 1)
BEGIN
IF(ISNULL(@Comprador_ID,0) > 0 AND @Produto_ID > 0)
BEGIN
SELECT
cliente.ID,
cliente.Produto_ID,
cliente.Carro_ID,
cliente.Coligacao_ID,
cliente.Cliente_ID,
cliente.Deposito_ID,
cliente.DocumentoTipo,
CAST(cliente.NM_Arquivo AS nvarchar) as NM_Arquivo,
CAST(cliente.NM_Token AS nvarchar) as NM_Token,
cliente.NM_Responsavel,
cliente.Data_BR,
compradores.ID
FROM Cliente cliente WITH (NOLOCK)
INNER JOIN Produto produto WITH (NOLOCK) ON produto.ID = cliente.Produto_ID
INNER JOIN Compradores compradores WITH (NOLOCK) ON compradores.ID = produto.Comprador_ID
WHERE compradores.ID = @Comprador_ID
AND cliente.Produto_ID = @Prodtuo_ID
AND cliente.DocumentoTipo = @DocumentoTipo;
END
END
ELSE
BEGIN
IF(ISNULL(@Comprador_ID,0) > 0 AND @Produto_ID > 0)
BEGIN
SELECT cliente.*,
compradores.ID
FROM Cliente cliente WITH (NOLOCK)
INNER JOIN Produto produto WITH (NOLOCK) ON produto.ID = cliente.Produto_ID
INNER JOIN Notas notas WITH (NOLOCK) ON notas.ID = produto.NVenda_ID
INNER JOIN Compradores compradores WITH (NOLOCK) ON compradores.ID = notas.Comprador_ID
WHERE compradores.ID = @Comprador_ID
AND cliente.Produto_ID = @Produto_ID
AND cliente.DocumentoTipo = DocumentoTipo;
END
END
RETURN;
</code>
faço um join na tabela clientes, esse campo é de lá, e na tabela clientes o caminho do arquivo está salvo certinho, completo com o nome do arquivo.
Alguem tem alguma ideia do que está errado ?
Prezados, boa tarde.
No meu banco de dados tenho registro de estoque de alguns produtos e suas respectivas unidades.
Eu gostaria que a query só trouxesse o último registro dos produtos daquela unidade.
Utilizo Mysql como banco de dados.
Segue minha Query abaixo:
Agradeço a todos desde já pela ajuda.
Share this post
Link to post
Share on other sites