根据孩子的数量计算付款

时间:2013-11-10 09:03:31

标签: c# asp.net sql sql-server count

下面的

是我在数据库中的表格。

enter image description here

我想根据孩子的数量来计算付款。

假设付款=每年100美元。它应该按孩子数量计算。

我有一个标签,显示孩子的数量。现在,我做的sql查询到目前为止,但我知道这听起来非常错误。我现在正在学习SQL。请帮助我。

SELECT COUNT(*) FROM Child WHERE ParentId=ParentId

3 个答案:

答案 0 :(得分:2)

JOIN两个表ChildParentPayment

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;

CTECommon table expression)会通过加入两个表格Parentchild来计算每个家长的孩子的数量,然后它会与另一个表格一起加入payment并计算每位家长的总金额。

答案 1 :(得分:1)

SELECT PARENT.PARENTID, COUNT(*)*100 AS PAYMENT, COUNT(*) AS NUMBEROFCHILDREN
FROM PARENT LEFT JOIN CHILDREN ON PARENT.PARENNID=CHILDREN.CHILDRENID
GROUP BY PARENT.PARENTID

我可以在父母没有孩子的情况下立即使用左连接吗?

答案 2 :(得分:0)

头部裂开1小时后。我自己解决了这个问题。

SELECT COUNT(*) FROM Child c INNER JOIN Parent par on c.ParentId = par.ParentId WHERE par.UserId = ?

感谢您的时间。