Fórum Consulta SQL... #278907

26/04/2005

0

Pessoal estou precisando muito desenrolar esse galho, preciso fazer uma consulta na Tabela MARMITAS_PEDIDO onde preciso trazer o [b:f6c4d1c2a0]consolidado[/b:f6c4d1c2a0] das marmitas vendidas em uma determinada data.

[b:f6c4d1c2a0]A consulta tera q trazer a seguinte informação:[/b:f6c4d1c2a0]

MARMITA P ==> TOTAL VENDIDO = 32 UND.
MARMITA M==> TOTAL VENDIDO = 15 UND.
MARMITA G ==>TOTAL VENDIDO = 07 UND.

segue abaixo o meu SQL q n esta dando certo,da o seguinte erro:
[b:f6c4d1c2a0]Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause).[/b:f6c4d1c2a0]

*********************************************
[b:f6c4d1c2a0]select[/b:f6c4d1c2a0] MARMITAS_PEDIDO.QNTDE,
MARMITA.DESCRICAO,
CLIENTES.NOMECLI,
CAST(PEDIDOS.DATAPEDIDO AS DATE) AS DATAPEDIDO,
SUM(MARMITAS_PEDIDO.QNTDE)
[b:f6c4d1c2a0]from[/b:f6c4d1c2a0] MARMITAS_PEDIDO
inner join MARMITA on (MARMITAS_PEDIDO.IDMARMITA = MARMITA.IDMARMITA )
inner join PEDIDOS on (MARMITAS_PEDIDO.IDPEDIDO = PEDIDOS.IDPEDIDO)
inner join CLIENTES on (PEDIDOS.IDCLIENTE = CLIENTES.IDCLIENTE)
[b:f6c4d1c2a0]where[/b:f6c4d1c2a0] PEDIDOS.DATAPEDIDO CONTAINING :DATAPEDID

[b:f6c4d1c2a0]group by[/b:f6c4d1c2a0] MARMITA.DESCRICAO
*********************************************


Hviana

Hviana

Responder

Posts

26/04/2005

Kotho

Pelo que entendi em seu relatório, você não precisará agrupar por QNTDE. Agora, você não disse nada com relação ao NOMECLI. Vamos considerar que seu relatório vai agrupar por data, cliente e marmita...

[code]
select
CAST(PEDIDOS.DATAPEDIDO AS DATE) AS DATAPEDIDO,
CLIENTES.NOMECLI,
MARMITA.DESCRICAO,
SUM(MARMITAS_PEDIDO.QNTDE)
from
MARMITAS_PEDIDO
inner join
MARMITA
on
(MARMITAS_PEDIDO.IDMARMITA = MARMITA.IDMARMITA )
inner join
PEDIDOS
on
(MARMITAS_PEDIDO.IDPEDIDO = PEDIDOS.IDPEDIDO)
inner join
CLIENTES
on
(PEDIDOS.IDCLIENTE = CLIENTES.IDCLIENTE)
where
PEDIDOS.DATAPEDIDO CONTAINING :DATAPEDID
group by
CAST(PEDIDOS.DATAPEDIDO AS DATE),
CLIENTES.NOMECLI,
MARMITA.DESCRICAO
[\code]

Se der erro no CAST do group by, tente deixar só o campo...

Caso o seu relatório não seja agrupado por cliente, então tire do select e do group by.

Curiosidade... pq vc utiliza CONTAINING???


Responder

Gostei + 0

26/04/2005

Hviana

Pessoal estou precisando muito desenrolar esse galho, preciso fazer uma consulta na Tabela MARMITAS_PEDIDO onde preciso trazer o [b:00a09af482]consolidado[/b:00a09af482] das marmitas vendidas em uma determinada data.(Preciso agrupar pelo campo descrição) [b:00a09af482]A consulta tera q trazer a seguinte informação:[/b:00a09af482] [b:00a09af482]DESCRIÇÃO[/b:00a09af482] [b:00a09af482]QNTDE[/b:00a09af482] MARMITA P ==> TOTAL VENDIDO = 32 UND. MARMITA M==> TOTAL VENDIDO = 15 UND. MARMITA G ==>TOTAL VENDIDO = 07 UND. segue abaixo o meu SQL q n esta dando certo,da o seguinte erro: [b:00a09af482]Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause).[/b:00a09af482] ********************************************* [b:00a09af482]select[/b:00a09af482] MARMITAS_PEDIDO.QNTDE, MARMITA.DESCRICAO, CLIENTES.NOMECLI, CAST(PEDIDOS.DATAPEDIDO AS DATE) AS DATAPEDIDO, SUM(MARMITAS_PEDIDO.QNTDE) [b:00a09af482]from[/b:00a09af482] MARMITAS_PEDIDO inner join MARMITA on (MARMITAS_PEDIDO.IDMARMITA = MARMITA.IDMARMITA ) inner join PEDIDOS on (MARMITAS_PEDIDO.IDPEDIDO = PEDIDOS.IDPEDIDO) inner join CLIENTES on (PEDIDOS.IDCLIENTE = CLIENTES.IDCLIENTE) [b:00a09af482]where[/b:00a09af482] PEDIDOS.DATAPEDIDO CONTAINING :DATAPEDID [b:00a09af482]group by[/b:00a09af482] MARMITA.DESCRICAO *********************************************



Responder

Gostei + 0

26/04/2005

Emerson Nascimento

DESCRIÇÃO QNTDE
MARMITA P ==> TOTAL VENDIDO = 32 UND.
MARMITA M==> TOTAL VENDIDO = 15 UND.
MARMITA G ==>TOTAL VENDIDO = 07 UND.

select M.DESCRICAO, Sum(MP.QNTDE)
from PEDIDOS P
inner join MARMITAS_PEDIDO MP on (MP.IDPEDIDO=P.IDPEDIDO)
inner join MARMITA M on (M.IDMARMITA = MP.IDMARMITA)
where P.DATAPEDIDO=:DATAPEDID 
group by M.DESCRICAO



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar