我这里有4个表,我需要将一个表中新输入的行值与另一行相乘,并使用来找到总和CustomerId
:
客户表 :
CustomerId Name EmailId
-------------------------
1 Paul r@r.com
2 John J@j.com
LoyaltyPointTable :
LoyaltyPointsId LoyaltyType Points
---------------------------------------
1 Registration 10
2 Loginstatus 1
3 Downloading 10
4 Redemming 1
5 Sharing 20
6 Refer 10
忠诚度详情表 :
LoyaltyDetailsId LoyaltyPointsId CustomerId Dates
-------------------------------------------------
1 1 1 2015-01-22
2 2 1 2015-01-22
3 3 2 2015-01-22
4 3 1 2015-01-22
5 4 1 2015-01-22
6 4 1 2015-01-24
7 5 1 2015-01-24
此查询对每个项目的总和都适用 LoyaltyType
SELECT
LoayaltyPointsTable.LoyaltyType,
COUNT(CustomerTable.CustomerId) AS UserActions,
SUM(LoayaltyPointsTable.Points) AS TotalPoints
FROM
LoayaltyPointsTable
JOIN
LoyaltyDetailsTable ON LoayaltyPointsTable.LoyaltyPointsId = LoyaltyDetailsTable.LoyaltyPointsId
JOIN
CustomerTable ON CustomerTable.CustomerId = LoyaltyDetailsTable.CustomerId
WHERE
CustomerTable.CustomerId = 1
GROUP BY
LoyaltyDetailsTable.CustomerId ,LoayaltyPointsTable.LoyaltyType
以下RedeemPointsTable
是与以下行的兑换相关的 LoyaltyPointTable
:
兑换积分表 :
RedeemPointsId CustomerId ShopName BillNo Amount
------------------------------------------------
1 1 Mall x 4757 100
3 1 Mall y SH43 50
4 1 Mall x 7743 10
6 1 Mall x s34a 60
我所期待计算总和之前,我想柱Amount
和(100+50+10+60) * 1
在Redeeming
在LoyaltyPointTable
与每个总分加入CustomerId
预期产量
LoyaltyType UserActions TotalPoints
-------------------------------------
Downloading 1 10
Loginstatus 1 1
Redemming 4 (100+50+10+60)*1(here using Amount in RedeemPointsTable)
Refer 1 10
Registration 1 10
Sharing 1 20
用户操作计数为4,它基于Amount
他输入的RedeemPointsTable
我应该在添加外键列时进行更改RedeemPointsTable
吗?还是可以指出我的错误?
任何帮助将是巨大的。
这是返回所需结果的查询:
SELECT
LoyaltyPointTable.LoyaltyType,
CASE
WHEN LoyaltyPointTable.LoyaltyPointsId=4 THEN (SELECT COUNT(amount) FROM RedeemPointsTable where CustomerId=1)
ELSE COUNT(CustomerTable.CustomerId)
END as UserActions,
CASE
WHEN LoyaltyPointTable.LoyaltyPointsId=4 THEN (SELECT SUM(amount) FROM RedeemPointsTable where CustomerId=1)*Points
ELSE SUM(LoyaltyPointTable.Points)
END as TotalPoints
FROM
LoyaltyPointTable
JOIN
LoyaltyDetailsTable ON LoyaltyPointTable.LoyaltyPointsId = LoyaltyDetailsTable.LoyaltyPointsId
JOIN
CustomerTable ON CustomerTable.CustomerId = LoyaltyDetailsTable.CustomerId
WHERE
CustomerTable.CustomerId = 1
GROUP BY
LoyaltyDetailsTable.CustomerId ,LoyaltyPointTable.LoyaltyType
你可以在这里检查
我想添加每个扇区的不同工作者值,但将该值乘以另一个键:value属性。这是一个vue.js组合API WebApp。
我有一个数据帧df1,其中索引是DatetimeIndex,有5列,col1,col2,col3,col4,col5。 我有另一个df2,它有一个几乎相等的datetimeindex(df1中可能缺少df1的某些天),还有一个“Value”列。 当日期相同时,我想将df1乘以df2的值。但不是所有列的col1。。。col5,只有col1。。。可乐 我可以看到有可能乘以col1*Value,然后乘以
问题内容: 我需要将每个键的值相乘,然后将所有值加在一起以打印一个数字。我知道这可能超级简单,但我被卡住了 在我看来,我可以通过以下方式解决此问题: 但是那样的事情是行不通的:) 问题答案: 如果需要个人,可以使用dict理解: 或直接求和:
我试图计算用户购物车中物品的总成本。我的方法是将项目成本和数量存储在Arraylist中,然后乘以该值再相加。例如,这是我的数组列表。我想做2.00*5.00 3.00*6.00 4.00*7.00 5.00*8.00。到目前为止,我所做的是将第一个数组列表中的第一个数字乘以第二个数组列表的每个项目。这不是我想做的,有人能帮我吗。
我想移动项目从一个表到另一个使用MySQL。 这是我目前使用的: 这是可行的,但是我想在一列中插入多个值,而不是在不同的列中插入每个值。 例如: 在表items_rooms中,我希望将items_phoenix中的值x和y放在items_rooms中的一列中。 如果x=5,y=2,我可以像这样将其保存到items\u房间中:一列:5.2,而不是每个值的不同列吗? 抱歉,如果这是混淆!
问题内容: 我正在尝试用TYPE2中找到的值覆盖TYPE1中找到的值。 我编写了此SQL进行尝试,但是由于某种原因它没有更新: http://www.sqlfiddle.com/#!3/a4733/17 为什么我的TYPE1中的值没有更新? 问题答案: 这对我有用