C# 根据孩子的数量计算付款
下面是我在数据库中的表 我想根据孩子的数量来计算报酬 假设付款=每年100美元。它应该按孩子的数量数倍 我有一个标签,可以显示孩子的数量。现在,我做的sql查询如下,但我知道它听起来非常错误。我现在正在学习sql。请帮助我C# 根据孩子的数量计算付款,c#,asp.net,sql,sql-server,count,C#,Asp.net,Sql,Sql Server,Count,下面是我在数据库中的表 我想根据孩子的数量来计算报酬 假设付款=每年100美元。它应该按孩子的数量数倍 我有一个标签,可以显示孩子的数量。现在,我做的sql查询如下,但我知道它听起来非常错误。我现在正在学习sql。请帮助我 SELECT COUNT(*) FROM Child WHERE ParentId=ParentId JOIN两个表Child、Parent和Payment: WITH CTE AS ( SELECT p.parentId, p.First
SELECT COUNT(*) FROM Child WHERE ParentId=ParentId
JOIN
两个表Child
、Parent
和Payment
:
WITH CTE
AS
(
SELECT
p.parentId,
p.FirstName,
p.LastName,
COUNT(c.ChildId) AS NOfChilderen
FROM Child AS c
INNER JOIN Parent AS p ON c.ParentId = p.ParentId
GROUP BY p.parentId,
p.FirstName,
p.LastName
)
SELECT
c.parentId,
c.FirstName,
c.LastName,
NOfChilderen * p.PaymentAmount AS TotalAmount
FROM CTE AS C
INNER JOIN Payment AS p ON p.UserId = p.UserId;
CTE
()将通过连接两个表parent
和child
,来计算每个家长的孩子人数,然后它将连接另一个表payment
,并计算每个家长的总金额。在我的脑袋裂了一个小时后。我自己解决了这个问题
<代码>从ChildPrimDe= PAR.PARTEND上的子C内部连接父PART中选择计数(*),其中PAR.USERID= < /P> 谢谢你抽出时间
SELECT PARENT.PARENTID, COUNT(*)*100 AS PAYMENT, COUNT(*) AS NUMBEROFCHILDREN
FROM PARENT LEFT JOIN CHILDREN ON PARENT.PARENNID=CHILDREN.CHILDRENID
GROUP BY PARENT.PARENTID
我使用了左键连接,只要你有没有孩子的父母?这似乎很复杂。你能把它缩短一点吗?因为我只想在标签中显示该值。@t3es-这将通过将Children的计数乘以
PaymentAmount
列来计算所有家长的总付款。这是真的吗?您想如何计算总付款额?是只需要一个值还是所有行都需要?你能给出一个样本数据和期望的输出吗?了解你想做什么会很有帮助。谢谢:)@t3es-你想为某个特定的父母或所有的父母购买吗?如果要对特定的父级执行此操作,必须像下面这样将parentId
传递到查询:选择COUNT(*)FROM Child,其中parentId=@parentId
。如果要对所有家长执行此操作,则必须删除where
子句,如下所示:SELECT COUNT(*)FROM Child
。