2017-12-26 36 views
1

私は、SQLテーブルを見て、私に材料とその長さを与えるSQLストアドプロシージャを持っています。私が望んでいるのは、クエリ結果が1回のみの資料を表示し、すべての長さがその資料に追加されることです。私はストアドプロシージャと私が得ている結果のスナップショットを含めています。以下はSQLストアドプロシージャのような材料を組み合わせると長さを合計する

ALTER PROCEDURE [dbo].[MaterialLengthByMachine] 
    -- Add the parameters for the stored procedure here 
    @Machine char (20) = 0 
AS 
BEGIN 
    -- SET NOCOUNT ON added to prevent extra result sets from 
    -- interfering with SELECT statements. 
    SET NOCOUNT ON; 

    -- Insert statements for procedure here 
    DECLARE @root hierarchyID; 

    SELECT @root= Node 
    FROM dbo.BOM 
    WHERE [email protected] 

    SELECT dbo.Components.Material, dbo.Components.[Length] 
    FROM 
      dbo.Components AS ParentComponents INNER JOIN 
      dbo.BOM AS ParentBOM ON ParentComponents.PartNo = ParentBOM.PartNo INNER JOIN 
      dbo.BOM AS PartBOM INNER JOIN 
      dbo.Components ON PartBOM.PartNo = dbo.Components.PartNo ON ParentBOM.Node = PartBOM.Node.GetAncestor(1) 

    WHERE 

     (PartBOM.Node.GetAncestor(PartBOM.Node.GetLevel() -1) = @root) 

    GROUP BY dbo.Components.Material, dbo.Components.[Length] 

END 

私は、例えば、私が唯一に16-4ケーブルをしたい取得していた結果では1時間に表示されているが、すべての16-4の長さが加算されると、1つの全長が与えられました。

enter image description here

答えて

0

私が正しく理解していれば、あなたは長さをSUMしようとしています。 SUM()キーワードを長さに合わせて選択してください:dbo.Components.[Length]SUM(dbo.Components.[Length])

さらに、GROUP BY dbo.Components.[Length]を削除する必要があります。これは、各長さでグループ化され、マテリアルごとにグループ化するためです。

は、次のようになります。

SELECT dbo.Components.Material, SUM(dbo.Components.[Length]) 
FROM 
     dbo.Components AS ParentComponents INNER JOIN 
     dbo.BOM AS ParentBOM ON ParentComponents.PartNo = ParentBOM.PartNo INNER JOIN 
     dbo.BOM AS PartBOM INNER JOIN 
     dbo.Components ON PartBOM.PartNo = dbo.Components.PartNo ON ParentBOM.Node = PartBOM.Node.GetAncestor(1) 

WHERE 

    (PartBOM.Node.GetAncestor(PartBOM.Node.GetLevel() -1) = @root) 

GROUP BY dbo.Components.Material 
+0

私は試してみるが、私が望んでいたまさになかったことをあなたに – ronnogal

+0

に感謝することを挙げてみましょうが、私はあなたupvoteを与えたが、それは表示されません、あなたの助けをありがとう – ronnogal

+0

@ronnogal素晴らしい、私は助けることがうれしい! –

関連する問題