2012-02-20 142 views
-3

我有如下SQL Server 2005中选择查询

表一个名为tbooking其列字段为booking_ref_id, date_created

表两个命名tpayment_transaction其列字段为payment_txn_ref_id, booking_ref_id, payment_status

两个表我要编写一个查询为“每年每个状态的交易次数”

结果应该像 -

payment_status  count  date_created 
1 Progress   34   2011 
2 Completed   10   2012 

等等....

因为threre是4型PAYMENT_STATUS

+0

你只需要PAYMENT_STATUS从以前的问题添加到'SELECT'和'GROUP BY',做你甚至试图做到这一点? – Lamak 2012-02-20 16:35:42

+0

是的,我尝试过...但我总是新的数据库概念... – 2012-02-20 16:37:21

回答

1

我假设tbooking.date_created的是某种日期字段。如果它是一个字符串字段与实际像今年“2011”,那么你就可以排除YEAR()功能:

SELECT payment_status, COUNT(*) AS count, YEAR(tb.date_created) AS date_created 
FROM tpayment_transaction tt 
JOIN tbooking tb 
    ON tb.booking_ref_id = tt.booking_ref_id 
GROUP BY tt.payment_status, YEAR(tb.date) 
+0

它应该是'年()'而不是'日期()' – Lamak 2012-02-20 16:44:45

+0

它的工作........ thanx为你所有。 。 – 2012-02-20 16:47:39