estou com um problema em resolver essa situação:
tenho uma Query com as seguintes colunas, contrato,obra,numeroOs,peso,criadoPor etc...
tenho várias Os com o mesmo número,vários contratos com o mesmo número.
O que eu preciso é agrupar pelo número da Os juntando um só para que eu possa ter apenas o total de peso de cada Os.
Ou seja, se eu tiver 4 OS com o mesmo item ou item diferente eu preciso tornar um só para somar o total de peso que essa OS tem.
a Query que eu tenho é a seguinte:
DECLARE @DataInicio DATE = '23/12/2014',
@DataFim DATE = '06/01/2015'
SELECT a.Id as NumeroOS,
c.CommitmentCode AS Contrato,
a.Description as Descricao,
L.Description,
a.ReportedDate as Relatado,
CreatedDate as DataCriacao,
ContactName as Origem,
ContactPhone as Destino,
(SELECT Username FROM Users WHERE Id = a.CreatedBy) as EnviadoPor,
(case when a.IsClosed>0 then 'Sim' else 'Não' end) as Fechada,
(SELECT b.Name FROM Asset_WorkOrderTypes b WHERE b.Id = a.TypeId) as Tipo,
w.Quantity AS Quantidade,
(w.Quantity *( SELECT dbo.ConvNumero(dbo.BuscaParametro(3,s.EntityId, 'Peso Unitário','Detalhes Cadastro Itens')))) AS Peso ,
(SELECT case
WHEN (SELECT COUNT(1) FROM Asset_WorkOrders w WHERE w.WorkOrderId = a.id and w.TypeId=59)>0
THEN 'Sim'
ELSE
'Não'
END
) as Estornado
FROM Asset_WorkOrders a
INNER JOIN Asset_WorkOrderOtherCost W
ON W.WorkOrderId = a.Id
INNER JOIN Items L
ON L.Id = W.ItemId
INNER JOIN Specifications S
ON S.EntityId = L.Id
INNER JOIN CostManagement_Commitments C
ON C.id = L.SpecificationGroupId
WHERE CAST(ReportedDate as DATe) BETWEEN @DataInicio AND @DataFim
AND a.CreatedBy IS NOT NULL
AND (SELECT b.Name FROM Asset_WorkOrderTypes b WHERE b.Id = a.TypeId) IN ('03 Retorno de Locação',
'06 Retorno de Fornecedor',
'07 Devolução para Terceiros',
'16 Recebimento de Transferência de Filial',
'20 Retorno de Locação (Outra Filial)')