Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL-带求和和和返回的过程和查询_Sql Server_Stored Procedures - Fatal编程技术网

Sql server SQL-带求和和和返回的过程和查询

Sql server SQL-带求和和和返回的过程和查询,sql-server,stored-procedures,Sql Server,Stored Procedures,我正在尝试使用一个子查询来执行一个过程,该子查询负责求和。 该程序应列出比萨饼等的所有项目,并列出配料、配料单价和成品成本总额 数据库的UML: 这应该起作用: SELECT textLine FROM ( SELECT pf.NameFinishedProduct As Name, 1 as Typ, N'The product '+pf.NameFInishedProduct+N' is composed of' As text

我正在尝试使用一个子查询来执行一个过程,该子查询负责求和。 该程序应列出比萨饼等的所有项目,并列出配料、配料单价和成品成本总额

数据库的UML:

这应该起作用:

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

当然,我没有什么可以测试的,所以请注意清空。

这不是一个工作板。我们不是来为你工作的。这里是一个很好的起点。你试过什么?你有什么问题?PS@Marc>我完全同意你的看法。\n我在主要问题上写了一篇文章,并考虑发布。OP应该以某种形式编写一个过程和一个子查询。很明显,OP不能像提交家庭作业那样提交你的解决方案,但希望你已经提供了足够的解决方案,让他能够在这个过程中分崩离析并真正学到一些东西。@shawnt00耶,我知道。这个过程很简单。像我一样把它写成一个大程序是很难的。但我很无聊,是的,我想他们可以学到一些东西。
The product Pizza is composed of
        3 Tomato priced 2 € each
        1 Cheese priced 1€ each
The total price of the Pizza is 7 €.
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