Received: from localhost (unknown [200.46.208.211]) by mail.postgresql.org (Postfix) with ESMTP id DE5E9634547 for ; Fri, 24 Jul 2009 20:14:46 -0300 (ADT) Received: from mail.postgresql.org ([200.46.204.86]) by localhost (mx1.hub.org [200.46.208.211]) (amavisd-maia, port 10024) with ESMTP id 70283-03-8 for ; Fri, 24 Jul 2009 23:14:29 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from smtp.insa-lyon.fr (criges14.insa-lyon.fr [134.214.76.242]) by mail.postgresql.org (Postfix) with ESMTP id E0349634106 for ; Fri, 24 Jul 2009 20:14:12 -0300 (ADT) Received: from localhost (localhost [127.0.0.1]) by smtp.insa-lyon.fr (Postfix) with ESMTP id 06064F1358; Sat, 25 Jul 2009 01:14:11 +0200 (CEST) X-Virus-Scanned: SMTP at INSA-LYON Received: from smtp.insa-lyon.fr ([127.0.0.1]) by localhost (criges14.insa-lyon.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id I2Nq6hPw1kTK; Sat, 25 Jul 2009 01:14:10 +0200 (CEST) Received: from [127.0.0.1] (liris.univ-lyon1.fr [134.214.142.10]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: nhandrianar) by smtp.insa-lyon.fr (Postfix) with ESMTPSA id 33EE9F1354; Sat, 25 Jul 2009 01:14:10 +0200 (CEST) Message-ID: <4A6A4003.8030203@free.fr> Date: Sat, 25 Jul 2009 01:13:07 +0200 From: nha Organization: Lyon, Rhone, France User-Agent: Thunderbird 2.0.0.6 (Macintosh/20070728) MIME-Version: 1.0 To: Bartjoosen CC: PgSQL-sql Subject: Re: using count in other column References: <24622738.post@talk.nabble.com> <4A6A3886.3080104@free.fr> In-Reply-To: <4A6A3886.3080104@free.fr> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Virus-Scanned: Maia Mailguard 1.0.1 X-Spam-Status: No, hits=0 tagged_above=-10 required=5 tests=none X-Spam-Level: X-Archive-Number: 200907/126 X-Sequence-Number: 32867 Hello again, Le 25/07/09 0:41, nha a écrit : > Hello, > > Le 23/07/09 11:59, bartjoosen a écrit : >> Hi, >> >> I made up a query to make a count for each item for each month/year: >> SELECT"Artnr_ID", to_char("Date_plan","YYYY") AS "Jaar", >> to_char("Date_plan","MM") AS "Maand", Count("tblArtnrs"."Artikelnr") AS >> "Monthly_count", "val1","val2","val3" >> FROM (("tblAnalyses" INNER JOIN "tblStudies" ON "tblAnalyses"."Studie_ID" = >> "tblStudies"."Studie_ID") INNER JOIN "tblFichenr" ON >> "tblStudies"."ID_fichenr" = "tblFichenr"."ID") INNER JOIN "tblArtnrs" ON >> "tblFichenr"."ID_Art_nrs" = "tblArtnrs"."Artnr_ID" >> GROUP BY "tblArtnrs"."Artnr_ID", to_char("Date_plan","YYYY") , >> to_char("Date_plan","MM"), "val1","val2","val3"; >> >> Now I want to use the "Monthly_count" value for further calculations with >> other columns. >> I tried to use >> "Monthly_count"+ "val1" + "Monthly_count" * "val2" + "Monthly_count" *"val3" >> But "Monthly_count" is not recognised in my calculations. >> >> How can this be solved? >> >> Thanks >> >> Bart >> > The error message you meet is missing in your report although it could > surely help in accurate analysis. However I guess it is about using > alias (like "Monthly_count") for defining project columns (like the one > you tried and failed). [...] I forgot to mention a solution for using the value aliased by "Monthly_count". An operational way is to reuse the whole aliased expression, ie. count("tblArtnrs"."Artikelnr") here. For example, the following query is wrong: SELECT "Artnr_ID", to_char("Date_plan", 'YYYY') AS "Jaar", to_char("Date_plan", 'MM') AS "Maand", count("tAr"."Artikelnr") AS "Monthly_count", "val1", "val2", "val3", "Monthly_count" + "val1" + "Monthly_count" * "val2" + "Monthly_count" * "val3" FROM ( ( "tblAnalyses" AS "tAn" INNER JOIN "tblStudies" AS "tS" ON "tAn"."Studie_ID" = "tS"."Studie_ID" ) INNER JOIN "tblFichenr" AS "tF" ON "tS"."ID_fichenr" = "tF"."ID" ) INNER JOIN "tblArtnrs" AS "tAr" ON "tF"."ID_Art_nrs" = "tAr"."Artnr_ID" GROUP BY "Artnr_ID", "Date_plan", "val1", "val2", "val3" It can be rewritten as follows: SELECT "Artnr_ID", to_char("Date_plan", 'YYYY') AS "Jaar", to_char("Date_plan", 'MM') AS "Maand", count("tAr"."Artikelnr") AS "Monthly_count", "val1", "val2", "val3", count("Artikelnr") + "val1" + count("Artikelnr") * "val2" + count("Artikelnr") * "val3" FROM ( ( "tblAnalyses" AS "tAn" INNER JOIN "tblStudies" AS "tS" ON "tAn"."Studie_ID" = "tS"."Studie_ID" ) INNER JOIN "tblFichenr" AS "tF" ON "tS"."ID_fichenr" = "tF"."ID" ) INNER JOIN "tblArtnrs" AS "tAr" ON "tF"."ID_Art_nrs" = "tAr"."Artnr_ID" GROUP BY "Artnr_ID", "Date_plan", "val1", "val2", "val3" Aliases have been used to make the overall query expression clearer and shorter. Regards. -- nha / Lyon / France.