我有这个复杂(对我)的要求,并希望它的SQL查询。这里的交易:一个(稍微复杂的)SQL查询?
- 有一个名为“费用”在Access文件中的表。
- 该表格包含“类别”,“金额”,“付款人”和“IsShare”等字段。
- 类别可以是天然气,杂货,家庭等...
- 金额是费用的美元金额。
- 付款人可以是我或我的兄弟(“我”或“兄弟”)。
- IsShare可以是真或假。基本上,如果IsShare是真的,那么费用分为两部分。否则,付款人付钱。
我需要一个SQL查询来计算特定类别的所有费用。应当计算为这样:我已经支付的所有非共享项目(付款人=“我”和IsShare =假)的
- 100%,所有共享的项目,I”的
- 50% (Payer ='我'和IsShare = true),以及
- 我兄弟支付的所有共享项目的50%(Payer ='Bro'AND IsShare = true)。
该查询应返回所有这三项的总和。
到目前为止,我有一个初步的查询,但它返回不正确的结果。有人能帮我纠正吗?
非常感谢。
return @"SELECT Sum(Amount) AS TotalAmount " +
"FROM Expenses " +
"WHERE Category = 'Groceries' " +
"AND Payer = 'Me' " +
"AND Share = false " +
"GROUP BY Category " +
"UNION " +
"SELECT 0.5 * Sum(Amount) AS TotalAmount " +
"FROM Expenses " +
"WHERE Category = 'Groceries' " +
"AND Payer = 'Me' " +
"AND Share = true " +
"GROUP BY Category " +
"UNION " +
"SELECT 0.5 * Sum(Amount) AS TotalAmount " +
"FROM Expenses " +
"WHERE Category = 'Groceries' " +
"AND Payer = 'Bro' " +
"AND Share = true ";
"GROUP BY Category";
使用'UNION ALL',换一个。 – 2012-03-18 02:53:30
这是什么数据库引擎,SQL Server? – Brettski 2012-03-18 02:59:07
欢迎来到Stack Overflow Santa!我总是想提醒新用户,提升和接受(复选标记)问题是表示赞赏的主要手段。如果您有任何问题,[常见问题]是一个很好的资源,尤其是[问] – 2012-03-18 03:03:36