Grouped item in a subquery - Mailing list pgsql-novice
| From | Steve Tucknott |
|---|---|
| Subject | Grouped item in a subquery |
| Date | |
| Msg-id | 1119542472.9881.55.camel@retsol1 Whole thread Raw |
| Responses |
Re: Grouped item in a subquery
|
| List | pgsql-novice |
What is the syntax for using a grouped 'function' result in a subquery?
I am trying to group by the first part of the 'post code' and use that
in the subquery - the code is:
I tried using the pZone in the group by and also in the subquery, but
psql told me that pZone wasn't a column. So I tried repeating the
SUBSTRING function (on addr) in the subquery and with the code below I
now get ERROR: subquery uses ungrouped column "addr.postcode" from
outer query - which is true..... is there a way to get around this?
(The query runs if I omit the AS pZone from the select, then just
compare addr.postCode to addr2.postCode in the subquery and group by
addr.postCode - but that doesn't amalgamate by the 'post zone')
SELECT SUBSTRING(addr.postCode FROM 1 FOR POSITION (' ' IN
addr.postCode)) AS pZone,
clFlt.description,
COUNT(*),SUM(originalEstimate) AS orig_est,
(SELECT SUM(claimedQty * originalCost)
FROM sourceDetProd AS srcP2
JOIN sourceDet AS srcD2
JOIN sourceHdr AS srcH2
JOIN customer AS cust2
JOIN address AS addr2
ON addr2.foreignTableName = 'customer'
AND addr2.foreignRecNo = cust2.recNo
AND SUBSTRING(addr2.postCode FROM 1 FOR
POSITION(' ' IN addr2.postCode)) =
SUBSTRING(addr.postCode FROM 1 FOR
POSITION (' ' IN addr.postCode))
ON srcH2.customerRecNo = cust2.recNo
ON srcD2.sourceHdrRecNo = srcH2.recNo
ON srcD2.recNo = srcP2.sourceDetRecNo) AS claimed,
FROM sourceHdr AS srcH
JOIN lookUpCodes AS clFlt
ON srcH.clFltLookUpCodesRecNo = clFlt.recNo
JOIN sourceDet AS srcD
JOIN sourceDetExtref AS srcE
ON srcE.foreignRecNo = srcD.recNo
AND srcE.tableName = 'sourcedet'
ON srcD.sourceHdrRecNo = srcH.recNo
JOIN customer AS cust
JOIN address AS addr
ON addr.foreignTableName = 'customer'
AND addr.foreignRecNo = cust.recNo
ON srcH.customerRecNo = cust.recNo
WHERE srcE.ownerForeignTableName = 'clientbranch'
AND srcE.ownerForeignRecNo = 1
GROUP BY pZone,clFlt.description;
--
Regards,
Steve Tucknott
ReTSol Ltd
DDI 01903 828769
MOBILE 07736715772
___________________________________________________________
How much free photo storage do you get? Store your holiday
snaps for FREE with Yahoo! Photos http://uk.photos.yahoo.com
pgsql-novice by date: