SELECT DISTINCT in a BROWSE

Hello everyone !!

I have browse with 2 tables, Father and son.

I need to show parents that only contain children and I only show 2 fields from the parent.

In the schematic file I marked the child with the INNER option. Up to here all nice. It shows me the parents who have a child.

The problem is that it shows me the father as many times as he has children.

How do I tell it to only show one parent ?

In SQL I put DISTINCT, but I don’t know how to put it in the browse

The sentence is as follows:

SELECT DISTINCT A.COARTICLE, A.DEARTICLE FROM Article AS A
INNER JOIN ArticlesFormula AS AF ON (A.COARTICULO=AF.COARTICULO)

Thank you very much

Since you’re using SQL I would leverage that.

  1. Easiest - create a view on the SQL server (select DISTINCT my fields from table1 where exists (select id from table2 where table1.id = table2.id)). Import that view into your dictionary. Use that in the browse.

  2. Use the table in the browse. Do not join it in Clarion. Instead, use prop:sqlFilter ThisView{prop:sqlfilter} = ‘parentId in (select parentId from childtable)’

1 Like

Hello Jane, Thank you very much !!

Carlos,
You can also use the aggregate functionality on the view to accomplish your distinct.

MyView VIEW(Article)
  PROJECT(ART:COARTICLE)
  PROJECT(ART:DARTICLE)
   JOIN()
    ....
   END
END
  CODE

  OPEN(MyView)
  MyView('ART:COARTICLE', PROP:NAME} = 'DISTINCT A.COARTICLE'

This will replace the first column name with what you assign to prop:name. This allows you to do things like DISTINCT or TOP 10, etc.
Search in the help for aggregate

2 Likes

thanks for the information. I have read the help and I could with your example and looking at the debug I could understand why the “SQL Advanced” tab is used in the browse.

Thank you very much