从2表SQL Server计算价格总和 [英] Calculate sum of price from 2 table sql server

查看:289
本文介绍了从2表SQL Server计算价格总和的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

询问后,计算总价格的总和这里及其工作,但随后我添加了(SUM(PRICE * AMOUNT)AS TOTAL_PRICE)以创建自己的视图,Total_price = Expr1,仅是PRICE * AMOUNT,这里没有总和。

After asking about calculate the sum of the total price here and Its work but then went I add(SUM(PRICE*AMOUNT) AS TOTAL_PRICE) to create my own View, the Total_price = Expr1, It just PRICE * AMOUNT, there is no sum here.

我应用它来创建视图
,这里是查询

I apply It to create a view here is the query

    SELECT                       SALE_DETAIL.PR_KEY,SALE_DETAIL.FR_KEY,dbo.SALE_DETAIL.PRICE * dbo.SALE_DETAIL.AMOUNT AS Expr1, 
      
                         dbo.DM_ITEM.UNIT_ID, dbo.DM_ITEM.ACTIVE AS ACTIVE_ITEM, SUM(PRICE*AMOUNT) AS TOTAL_PRICE , dbo.SALE.TOTAL_CHAIR_USE,SALE_DETAIL.ITEM_ID,dbo.SALE_DETAIL.PRICE
FROM                     dbo.DM_ITEM 
                         INNER JOIN
                         dbo.SALE_DETAIL ON dbo.DM_ITEM.ITEM_ID = dbo.SALE_DETAIL.ITEM_ID 
                         LEFT OUTER JOIN
                         dbo.DM_VAT_TAX ON dbo.SALE_DETAIL.VAT_TAX_ID = dbo.DM_VAT_TAX.VAT_TAX_ID 
                         LEFT OUTER JOIN
                         dbo.SALE 
                         LEFT OUTER JOIN
                         dbo.DM_TABLES ON dbo.SALE.TABLE_ID = dbo.DM_TABLES.TABLE_ID ON dbo.SALE_DETAIL.FR_KEY = dbo.SALE.PR_KEY
WHERE                   (dbo.SALE.IS_PROVISIONAL = 1)
GROUP BY
    SALE.PR_KEY,DM_ITEM.ITEM_NAME,DM_ITEM.ITEM_CLASS_ID,DM_ITEM.UNIT_ID,
    SALE.TABLE_ID,DM_ITEM.ACTIVE,
    SALE.TRAN_ID,SALE_DETAIL.PRICE,
    TRAN_NO,PAY_TYPE_ID,DM_VAT_TAX.VAT_TAX_NAME,
    TRAN_DATE,SALE.COMMENT,
    CUSTOMER_ID,SALE_DETAIL.PR_KEY,SALE_DETAIL.FR_KEY,SALE_DETAIL.LIST_ORDER,SALE_DETAIL.ITEM_ID,SALE_DETAIL.VAT_TAX_ID,
    USER_ID,SALE.TOTAL_CUSTOMER_PAY,SALE.EXPORT_TYPE_ID,SALE.IS_PROVISIONAL,
    DM_TABLES.TABLE_NAME,DM_TABLES.TOTAL_CHAIR,SALE_DETAIL.AMOUNT,SALE.TOTAL_CHAIR_USE,SALE.COST_OTHER,SALE_DETAIL.HOUR_CALL

这是输出

PR_KEY FR_KEY Expr1 UNIT_ID ACTIVE_ITEM TOTAL_PRICE TOTAL_CHAIR_USE ITEM_ID PRICE


 272.00 180.00  710000   7  0           710000      0               LAU_BO  355000.00
273.00  182.00  50000    5  0           50000       0               LON_R   50000.00
274.00  182.00  180000   5  0           180000      0               G_L     180000.00
281.00  187.00  30000    3  0           30000       0               9       10000.00
282.00  187.00  40000    3  0           40000       0               tom     20000.00
283.00  189.00  200000   3  0           200000      0               2       200000.00
295.00  199.00  0.00     0  1           0.00        0               5         0.00
296.00  199.00  0.00     5  0           0.00        0               B_XT    0.00

任何人都可以

推荐答案

根据您在此处的问题以及您在上一个问题中提供的选择,将价格总和从 Sale_Detail 推到主 Sale 表现在看起来更合乎逻辑。您可以通过使用带有 WITH 函数的上一个查询来 UPDATE (推送)主表。这样,您可以根据 Sale 表的主键(它是 Sale_Detail 中的外键)更新总价。我了解。

According to your problem here and the choices you provided on your previous question, pushing sum of prices from Sale_Detail to master Sale table seems more logical now. You can UPDATE (push) your master table by using the previous query with WITH function. This way, you can update total price in Sale table based on its primary key which is a foreign key in Sale_Detail as I understood.

您可以根据关键字和其他列值的总价格总计在Sale_Detail表中调整分组。

You can adjust your grouping in Sale_Detail table according to your total price summation for the key and other column values.

请注意用影响可读性的语法编写和发布查询。

Please be careful writing and posting queries with such syntax that affects the readability.

WITH Sales_CTE (PR_KEY, TOTAL_PRICE)
 AS
 (
SELECT
    Sale.PR_KEY,
    SUM(PRICE*AMOUNT) AS TOTAL_PRICE
FROM
    Sale_Detail
INNER JOIN Sale 
    ON Sale_Detail.FR_KEY = Sale.PR_KEY
GROUP BY
    Sale.PR_KEY,
    TRAN_ID,
    TRAN_NO,
    TRAN_DATE,
    CUSTOMER_ID,
    USER_ID,
    TABLE_ID,
    PAY_TYPE_ID
)
UPDATE
    Sale
SET
    Sale.TOTAL_PRICE = Sales_CTE.TOTAL_PRICE
FROM
    Sale
INNER JOIN
    Sales_CTE
ON 
    Sales_CTE.PR_KEY = Sale.PR_KEY;

这篇关于从2表SQL Server计算价格总和的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆