Hahaha .. My Mistake, i've been trying all possible query,
and haven't optimize it yet and send it right away. Good point, thanks

2011/8/1 Svein Erling Tysvær <svein.erling.tysv...@kreftregisteret.no>

> **
>
>
> Cornie van Schoor wrote:
>
> > I have 2 tables that I need to join with a third table defining a linked
> > between the 2.
> >
> > CLIENTS A
> >
> > CODE VARCHAR(15) (PK)
> > NAME VARCHAR(30)
> > .
> > .
> >
> > CLIENT_GROUPS B
> > CODE VARCHAR(15) (PK)
> > DESCRIPTION VARCHAR(30)
> >
> > CLIENT_GROUPING C
> > GROUPING_CODE (PK) (Links to CODE in B CLIENT_GROUP)
> > CLIENT_CODE (PK) (LINKS to CODE in A CLIENTS)
> >
> > What I need is SELECT result with each and everyone record of B
> > CLIENT_GROUPS only once, plus a FIELD (call it LINKED) which indicates if
> > there is record in CLIENT_GROUPINGS where C.GROUPING_CODE = B.CODE and
> > C.CLIENT_CODE = 'xyz client'
> >
> > Example Data
> >
> > CLIENTS
> > CODE NAME
> > John John Murray
> > Mary Mary Poppins
> >
> > CLIENT_GROUPS
> > CODE DESCRIPTION
> > Every Everyone
> > OT18 Older Than 18
> >
> > CLIENT_GROUPINGS
> > GROUPING_CODE CLIENT_CODE
> > Every John
> > Every Mary
> > OT18 John
> >
> > Required result when C.CLIENT_CODE = 'Mary'
> >
> > GROUP_CODE LINKED
> > Every True or 1 or not null
> > OT18 False or 0 or null
> >
> > Any help will be much appreciated.
> >
> > Regards
> >
> > Cornie van Schoor
>
> Iwan Cahyadi Sugeng answered:
>
>
> >Try this query, it works on FB2.5
> >
> >SELECT
> > CLIENT_GROUPS.CODE,
> > CASE WHEN GROUPING.CLIENT_CODE IS NULL THEN 0 ELSE 1 END LINKED
> >FROM CLIENT_GROUPS
> >LEFT JOIN (
> > SELECT
> > CLIENT_GROUPING.*
> > FROM CLIENT_GROUPING
> > WHERE CLIENT_GROUPING.CLIENT_CODE = 'Mary'
> >) GROUPING ON GROUPING.GROUPING_CODE = CLIENT_GROUPS.CODE
>
> Why the subselect? Wouldn't
>
> SELECT B.CODE, CASE WHEN C.CLIENT_CODE IS NULL THEN 0 ELSE 1 END AS LINKED
> FROM CLIENT_GROUPS B
> LEFT JOIN CLIENT_GROUPING C
> ON B.CODE = C.GROUPING_CODE
> AND C.CLIENT_CODE = 'Mary'
>
> be a simpler option? I expect 'Mary' to appear 0 or 1 time in
> CLIENT_GROUPING, if CLIENT_GROUPING can contain duplicates, some changes
> have to be done.
>
> HTH,
> Set
>
>  
>



-- 
Iwan Cahyadi Sugeng


[Non-text portions of this message have been removed]



------------------------------------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Visit http://www.firebirdsql.org and click the Resources item
on the main (top) menu.  Try Knowledgebase and FAQ links !

Also search the knowledgebases at http://www.ibphoenix.com 

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/firebird-support/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/firebird-support/join
    (Yahoo! ID required)

<*> To change settings via email:
    firebird-support-dig...@yahoogroups.com 
    firebird-support-fullfeatu...@yahoogroups.com

<*> To unsubscribe from this group, send an email to:
    firebird-support-unsubscr...@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/

Reply via email to