我目前正在编程一个SQL视图应该提供一个特定月份的填充字段的计数。动态列名称在视图(Postgres)
这是我想建造的观点:
Country | (Current Month - 12) Eg Feb 2011 | (Current Month - 11) | (Current Month - 10)
----------|----------------------------------|----------------------|---------------------
UK | 10 | 11 | 23
月份下的数字应该是某个国家的所有填充字段的计数。该字段被命名为eldate,并且是格式为10-12-2011的日期(格式为char)。我希望计数只计算与月份相匹配的日期。
因此,“当前月份 - 12”栏应该只包括现在12个月内的月份数。例如本月 - 英国的12应包括2011年2月之内的日期计数。
我想列标题实际上反映了一个月它正在寻找这样:
Country | Feb 2011 | March 2011 | April 2011
--------|----------|------------|------------
UK | 4 | 12 | 0
因此,像:
SELECT c.country_name,
(SELECT COUNT("C1".eldate) FROM "C1" WHERE "C1".eldate LIKE %NOW()-12 Months% AS NOW() - 12 Months
(SELECT COUNT("C1".eldate) FROM "C1" WHERE "C1".eldate LIKE %NOW()-11 Months% AS NOW() - 11 Months
FROM country AS c
INNER JOIN "site" AS s using (country_id)
INNER JOIN "subject_C1" AS "C1" ON "s"."site_id" = "C1"."site_id"
显然,这并不工作,但只给你一个关于我所得到的想法。
任何想法?
感谢您的帮助,请再问问。
我不知道你是否能实现这与一个观点,但你可以使用一个功能。注意PostgreSQL中你可以调用这样的函数:'SELECT * FROM funName()' – DavidEG 2012-02-27 15:12:43
是的,我认为这可能是一种方式,然而,我是一个新手,不知道如何构建一个函数来做到这一点 – 2012-02-27 15:17:15