Array
(
)

Select retorna mais de uma coluna

Robertolucio
   - 09 nov 2004

Bom dia a todos,

Meu problema parece simples, mas não estou conseguindo resolver. :oops:

Existe uma tabela de pedidos (ped_cab) que eu devo pegar os dados do código do fornecedor, o número do pedido e da tabela pedido itens (ped_itens) devo pegar a quantidade pedida, a quantidade cancelada, a quantidade recebida, o valor unitário de cada mercadoria e o valor total (quantidade recebida * valor unitário), até aí tudo bem, mas a minha dificuldade é que permitiram que se cadastre para o mesmo pedido, a mesma quantidade mas com valores unitários diferentes.

Se eu usar o SUM para totalizar os itens vai acusar:
Subquery returned more than 1 value.

Como devo proceder para que isso não aconteça?

Att
Roberto

Marcus.magalhaes
   - 09 nov 2004

Bom dia Roberto.

Fiz um teste rápido e funcionou, me corrija no que estiver diferente pf.

Create Table ped_cab (codfor Int, codped Int)
GO
Create table ped_itens (codped Int, qtdepedit Int, qtdecancpedit Int, qtderecpedit Int, valunitpedit Money)
GO
Insert Into ped_cab (codfor, codped) values (1, 1)
Insert Into ped_cab (codfor, codped) values (1, 2)
Insert Into ped_cab (codfor, codped) values (1, 3)
GO
Insert Into ped_itens (codped, qtdepedit, qtdecancpedit, qtderecpedit, valunitpedit) values (1, 2, 1, 1, 10)
Insert Into ped_itens (codped, qtdepedit, qtdecancpedit, qtderecpedit, valunitpedit) values (1, 2, 1, 1, 15)
Insert Into ped_itens (codped, qtdepedit, qtdecancpedit, qtderecpedit, valunitpedit) values (2, 2, 1, 1, 10)
Insert Into ped_itens (codped, qtdepedit, qtdecancpedit, qtderecpedit, valunitpedit) values (2, 2, 1, 1, 15)
Insert Into ped_itens (codped, qtdepedit, qtdecancpedit, qtderecpedit, valunitpedit) values (3, 2, 1, 1, 10)
Insert Into ped_itens (codped, qtdepedit, qtdecancpedit, qtderecpedit, valunitpedit) values (3, 2, 1, 1, 15)
GO

Select ped.codfor, ped.codped, sum(pedit.qtdepedit) ´Qtde Pedida´, sum(pedit.qtdecancpedit) ´Qtde Cancelada´, sum(pedit.qtderecpedit) ´Qtde Recebida´, sum((pedit.qtderecpedit * pedit.valunitpedit)) ´Valor Total´
From ped_cab ped Inner Join ped_itens pedit On ped.codped = pedit.codped
Group by ped.codfor, ped.codped
GO

Drop Table ped_cab
GO
Drop Table ped_itens
GO

Att,

Robertolucio
   - 10 nov 2004

Oi Marcus,

Cara é isso mesmo, que me*&a, passei vergonha.

Valeu

[]´s
Roberto