2017-12-15 5 views
0

指定したジョブのすべての部品を価格で一覧表示するクエリがあります。私は一度だけ印刷したいと思う総計列を持っていますが、それはすべての行の合計を計算します。私は解決策を見つけることができませんか?サンプルの結果セットのイメージを追加しました。 318を最後の行にのみ表示したい。これは可能ですか?すべての行で合計列を初期化するストアドプロシージャを選択します。 1つだけにする必要があります

use SBS 

IF  EXISTS (SELECT * FROM sys.objects  
      WHERE object_id = OBJECT_ID(N'partPrices') 
       AND type in (N'P', N'PC')) 
    DROP PROCEDURE partPrices 
GO 

CREATE PROCEDURE partPrices 
    (@job_name VARCHAR(30), 
    @job_type_id INT) 
AS 
BEGIN 
    SELECT 
     job.job_name, job_type.job_type_desc, 
     distributor.distributor_name, 
     part.part_name, part.price, 
     Total_part_price = (SELECT SUM(part.price) FROM part) 
    FROM  
     job 
    INNER JOIN 
     job_type ON job.job_type_id = job_type.job_type_id 
    INNER JOIN 
     part ON job.job_id = part.job_id 
    INNER JOIN 
     distributor ON part.distributor_id = distributor.distributor_id 
    WHERE 
     job.job_name LIKE '%' + @job_name + '%' 
     AND job_type.job_type_id = @job_type_id 
    GROUP BY 
     job.job_name, job_type.job_type_desc, part.part_name, 
     part.price, distributor.distributor_name 
END 

enter image description here

+0

あなたは助けを必要とし、まだありますか? – user3532232

答えて

0
SELECT job.job_name, 
     job_type.job_type_desc, 
     distributor.distributor_name, 
     part.part_name, 
     part.price, 
     CASE 
      WHEN LAG(part_name) OVER(PARTITION BY part.part_name ORDER BY part_name) IS NULL 
      THEN NULL 
      ELSE SUM(part.price) OVER(PARTITION BY part.part_name) 
     END total 
FROM job 
    INNER JOIN job_type ON job.job_type_id = job_type.job_type_id 
    INNER JOIN part ON job.job_id = part.job_id 
    INNER JOIN distributor ON part.distributor_id = distributor.distributor_id 
WHERE job.job_name LIKE '%'[email protected]_name+'%' 
     AND job_type.job_type_id = @job_type_id 
GROUP BY job.job_name, 
     job_type.job_type_desc, 
     part.part_name, 
     part.price, 
     distributor.distributor_name; 
+0

あなたは正しい道にいると思います。私はnullを置くべきだと思っていた。私はちょうどこのクエリを実行し、totalpriceのすべての列はNULLでした.. – Dylano236

関連する問題