Gracias a todos por la ayuda presatada, probaré con las instrucciones que me
indicais,
Muchas gracias y espero que funcione.
"José Alfonso Suárez Moreno" <
jasm.quitaesto@tpvsoft.com> escribió en el
mensaje de noticias news:4a38cdb5$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> Ansel,
>
> ¿Que te parece...?
>
> cProvincia := "Guadalajara"
>
> "SELECT * FROM clientes
> INNER JOIN clidir ON clidir.codigo_cliente = clientes.codigo_cliente
> WHERE clidir.provincia = " + Chr( 34 ) + cProvincia + Chr( 34 )
>
> Saludos,
>
> Alf+.
>
>
> Ansel escribió:
>>
>>> Gracias por tu respuesta José Alfonso, pero no es lo que busco,
>>> intentaré
>>> explicarme mejor, a ver si lo consigo.
>>>
>>> Tengo un oSQLQuery que contiene los datos de los clientes pertenecientes
>>> a un determinado usuario de la aplicación, ya que cuando se entra en
>>> ella, el usuario ingresa su nombre y contraseña y ejecuto lo siguiente :
>>>
>>> ::cSQL := "SELECT * FROM CLIENTES WHERE CMAN = '" + AppData:cUsuario +
>>> "' ORDER BY NCOC ASC"
>>>
>>> WITH OBJECT ::oSQLClientes // Es
>>> del tipo oSQLQuery
>>> :oDataSource := Application:oMainForm:oSQLDatos // Es el Datasource
>>> de la aplicación
>>> :cSelect := ::cSQL // Ejecuta el query
>>> :lOpen := .T.
>>> END WITH
>>>
>>> En ese instatante muestro dentro de un browse el resultado del query del
>>> usuario que ha entrado en la aplicación para que solo puede ver /
>>> modificar y eliminar sus propios registros, no tiene acceso o no ve los
>>> clientes de otro usuario.
>>>
>>> Ahora, el usuario desea ver cuantos clientes tiene en la provincia de
>>> "Guadalajara" ( por ejemplo ), el campo <provincia> está en otra tabla
>>> llamada CLIDIR, y es ahí donde me atasco, ya que necesito mostrar en un
>>> browse los clientes que tiene en dicha provincia y que solo le
>>> pertenecen a él y no todos los clientes que hay en "Guadalajara".
>>>
>>> Gracias de antemano
>>>
>>>
>>> ----- Original Message ----- From: "José Alfonso Suárez Moreno"
>>> <
jasm.quitaesto@tpvsoft.com>
>>> Newsgroups: local.xailer.spanish
>>> Sent: Tuesday, June 16, 2009 5:52 PM
>>> Subject: Re: Como hacer filtros con distintas tablas en SQLite
>>>
>>>
>>>> Ansel,
>>>>
>>>> ¿Algo así como...?
>>>>
>>>> "SELECT * FROM clientes
>>>> INNER JOIN clidir ON clidir.codigo_cliente = clientes.codigo_cliente
>>>> INNER JOIN cliacc ON cliacc.codigo_cliente = clientes.codigo_cliente
>>>> WHERE clientes.codigo_cliente = " + Str( nCodigo )
>>>>
>>>>
>>>> Saludos
>>>>
>>>> Alf+.
>>>>
>>>>
>>>> Ansel escribió:
>>>>>
>>>>> Hola a todos, soy nuevo en el foro, ya que hasta ahora no podía
>>>>> publicar ningún mensaje en dicho foro, pero ahora puedo hacerlo y me
>>>>> guataría que me ayudasen en mi problema, que no sé resolver:
>>>>>
>>>>> 1º Tengo una base de datos en SQLite con múltiples tablas, una de
>>>>> ellas es la típica Clientes que contiene datos generales de los
>>>>> clientes y otras tres tablas más que se llaman CLIDIR, que contiene
>>>>> las direcciones de los clientes, otra CLIACC, que contiene el
>>>>> historico de las acciones que se van realizando con los clientes, es
>>>>> decir, si se les llama o se les envía un fax, etc. y otra llamada
>>>>> CLICONT, que contien los contactos o personas de dichos clientes,
>>>>> todas estas tablas tienen un campo en común llamado NCoc, que es el
>>>>> código del cliente, que utilizo para extraer únicamente los datos de
>>>>> ese cliente en concreto con una senetencia SELECT del estilo:
>>>>>
>>>>> WITH OBJECT ::oSQLAcciones // Es una objeto oSQLQuery...........
>>>>> :lOpen := .F.
>>>>> :cSelect := "SELECT * FROM CLIACC WHERE nCoc='" +
>>>>> ::oSQLCientes:NCOC+"'"
>>>>> :lOpen := .T.
>>>>> END WITH
>>>>>
>>>>> Mi problema es el siguiente:
>>>>>
>>>>> Cuando la tabla Clientes está filtrada por algún campo en concreto,
>>>>> deseo que cualquier filtrado posterior de las tablas relacionadas solo
>>>>> afecten a los registros que cumplan la condicion de filtrado de la
>>>>> tabla de clientes, es decir, que cuando en una de las tablas hijas
>>>>> ejecute una sentencia SELECT solo afecten a los registros de la tabla
>>>>> Cliente que tenga mostrados en pantalla a través de su oSQLTable (
>>>>> ::oSQLClientes ).
>>>>>
>>>>> ¿ Como debería ser la sentecia SQL, o como debo hacerlo ?
>>>>>
>>>>> Perdón si no me he explado bien.
>>>>>
>>>>> Gracias de antemano
>>>>> Saludos a todos
>>>>>
>>>>>
>>
>>
>> "José Alfonso Suárez Moreno" <
jasm.quitaesto@tpvsoft.com> escribió en el
>> mensaje de noticias news:4a37bfc4$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
>>> Ansel,
>>>
>>> ¿Algo así como...?
>>>
>>> "SELECT * FROM clientes
>>> INNER JOIN clidir ON clidir.codigo_cliente = clientes.codigo_cliente
>>> INNER JOIN cliacc ON cliacc.codigo_cliente = clientes.codigo_cliente
>>> WHERE clientes.codigo_cliente = " + Str( nCodigo )
>>>
>>>
>>> Saludos
>>>
>>> Alf+.
>>>
>>>
>>> Ansel escribió:
>>>>
>>>> Hola a todos, soy nuevo en el foro, ya que hasta ahora no podía
>>>> publicar ningún mensaje en dicho foro, pero ahora puedo hacerlo y me
>>>> guataría que me ayudasen en mi problema, que no sé resolver:
>>>>
>>>> 1º Tengo una base de datos en SQLite con múltiples tablas, una de ellas
>>>> es la típica Clientes que contiene datos generales de los clientes y
>>>> otras tres tablas más que se llaman CLIDIR, que contiene las
>>>> direcciones de los clientes, otra CLIACC, que contiene el historico de
>>>> las acciones que se van realizando con los clientes, es decir, si se
>>>> les llama o se les envía un fax, etc. y otra llamada CLICONT, que
>>>> contien los contactos o personas de dichos clientes, todas estas tablas
>>>> tienen un campo en común llamado NCoc, que es el código del cliente,
>>>> que utilizo para extraer únicamente los datos de ese cliente en
>>>> concreto con una senetencia SELECT del estilo:
>>>>
>>>> WITH OBJECT ::oSQLAcciones // Es una objeto oSQLQuery...........
>>>> :lOpen := .F.
>>>> :cSelect := "SELECT * FROM CLIACC WHERE nCoc='" +
>>>> ::oSQLCientes:NCOC+"'"
>>>> :lOpen := .T.
>>>> END WITH
>>>>
>>>> Mi problema es el siguiente:
>>>>
>>>> Cuando la tabla Clientes está filtrada por algún campo en concreto,
>>>> deseo que cualquier filtrado posterior de las tablas relacionadas solo
>>>> afecten a los registros que cumplan la condicion de filtrado de la
>>>> tabla de clientes, es decir, que cuando en una de las tablas hijas
>>>> ejecute una sentencia SELECT solo afecten a los registros de la tabla
>>>> Cliente que tenga mostrados en pantalla a través de su oSQLTable (
>>>> ::oSQLClientes ).
>>>>
>>>> ¿ Como debería ser la sentecia SQL, o como debo hacerlo ?
>>>>
>>>> Perdón si no me he explado bien.
>>>>
>>>> Gracias de antemano
>>>> Saludos a todos
>>>>
>>>>