2016-07-15 13 views
-3

私はを実行しようとしていますSUMサブクエリを使用します。 手順は<ProductFinished>(Iピザなど)のすべての品目をリストし、原材料の単価および完成品の総原価を含む品目を一覧表示する必要があります。データベースのSQL - プロシージャ&クエリSUMで&返信

UML: enter image description here

The product <NameFInishedProduct> is composed of 
     3 <NameRawProduct> priced <BuyPrice> € each 
     1 <NameRawProduct> priced <BuyPrice> € each 
The total price of the <NameFInishedProduct> is <SUM> €. 

通常の出力で魔女がこれは動作するはず

The product Pizza is composed of 
     3 Tomato priced 2 € each 
     1 Cheese priced 1€ each 
The total price of the Pizza is 7 €. 
+3

これはジョブボードではありません。私たちはあなたのためにあなたの仕事をするためにここにいません。 –

+0

ここから始めましょう。 http://spaghettidba.com/2015/04/24/how-to-post-a-t-sql-question-on-a-public-forum/ –

+1

何を試しましたか?あなたの問題は何ですか? PS @Marc>私はあなたに完全に同意します。\ –

答えて

1

次のようになります。もちろん

SELECT textLine FROM 
(
    SELECT pf.NameFinishedProduct As Name, 
      1 as Typ, 
      N'The product '+pf.NameFInishedProduct+N' is composed of' As textLine 
    FROM ProductFinished As pf 
UNION ALL 
    SELECT pf.NameFinishedProduct, 
      2, 
      N'  '+CAST(co.QuantityUsed As NVARCHAR(80))+N' '+pr.NameRawProduct+N' priced '+CAST(pr.BuyPrice As NVARCHAR(80))+N' € each' 
    FROM ProductFinished As pf 
    JOIN Composition  As co ON co.IdProductFinished = pf.IdProductFinished 
    JOIN ProductRaw  As pr ON pr.IdProductRaw  = pr.IdProductRaw 
UNION ALL 
    SELECT pf.NameFinishedProduct, 
      3, 
      N'The total price of the '+pf.NameFInishedProduct+N' is '+CAST(SUM(co.QuantityUsed * pr.BuyPrice) AS NVARCHAR(80))+N' €.' 
    FROM ProductFinished As pf 
    JOIN Composition  As co ON co.IdProductFinished = pf.IdProductFinished 
    JOIN ProductRaw  As pr ON pr.IdProductRaw  = pr.IdProductRaw 
    GROUP BY pf.NameFinishedProduct 
) AS A 
ORDER BY Name, Typ 

を私がテストするためには何もありませんそれで、emptorに注意してください。

+1

私はメインの質問を書いて、投稿について考えました。 OPは何らかの形で "手続き"と "副問い合わせ"を書くことになっています。明らかに、OPはあなたの解決策を宿題に代入することはできませんが、うまくいけば、彼が裂けて実際に何かを学ぶことができればうれしいです。 – shawnt00

+0

@ shawnt00 Yah、私は知っている。手順は簡単です。私がしたような単一の大きな手順としてそれを書くことは "難しい"です。しかし、私は退屈していました。そして、ええ、彼らは何かを学ぶことができると考えました。 – RBarryYoung