FAQ
Hola a tod@s!!

Perdonen el OT (y lo largo del mail) pero estoy trabado en esta consulta,
que estoy haciendo contra access desde hace un rato bastante largo y no
termino de entender si es por una limitación de Access, o le estoy pifiando
en algún punto de la lógica.

En una tabla con un id, guardo un campo adonde guardo que operaciones estan
relacionadas con otras, y en varias otras, descripciones de distintas cosas
asociadas con cada operacion (Cliente , trader , bono, etc).

Tengo esta consulta, que funciona:

SELECT operaciones.tdate, operaciones.sdate, operaciones.trade, bonos.isin,
operaciones.cuantity, operaciones.price, operaciones.interests,
operaciones.exchrate, operaciones.cambio_actual, clientes.descripcion,
traders.nombre, traders.apellido, operaciones.pb_fr, operaciones_1.tdate,
operaciones_1.sdate, operaciones_1.trade, bonos_1.isin,
operaciones_1.cuantity, operaciones_1.price, operaciones_1.interests,
operaciones_1.exchrate, operaciones_1.cambio_actual, clientes_1.descripcion,
traders_1.nombre, traders_1.apellido, operaciones_1.pb_fr
FROM traders AS traders_1 INNER JOIN (clientes AS clientes_1 INNER JOIN
(bonos AS bonos_1 INNER JOIN (operaciones AS operaciones_1 INNER JOIN
(traders INNER JOIN (bonos INNER JOIN (clientes INNER JOIN operaciones ON
clientes.id = operaciones.cliente) ON bonos.isin = operaciones.isin) ON
traders.id = operaciones.trader) ON operaciones_1.op_asoc = operaciones.id)
ON bonos_1.isin = operaciones_1.isin) ON clientes_1.id =
operaciones_1.cliente) ON traders_1.id = operaciones_1.trader;

Pero el campo op_asoc puede no tener nada, y yo quiero que obtener en la
misma consulta esas operaciones, por lo que plantee esta otra consulta:

SELECT operaciones.tdate, operaciones.sdate, operaciones.trade, bonos.isin,
operaciones.cuantity, operaciones.price, operaciones.interests,
operaciones.exchrate, operaciones.cambio_actual, clientes.descripcion,
traders.nombre, traders.apellido, operaciones.pb_fr, operaciones_1.tdate,
operaciones_1.sdate, operaciones_1.trade, bonos_1.isin,
operaciones_1.cuantity, operaciones_1.price, operaciones_1.interests,
operaciones_1.exchrate, operaciones_1.cambio_actual, clientes_1.descripcion,
traders_1.nombre, traders_1.apellido, operaciones_1.pb_fr
FROM traders AS traders_1 INNER JOIN (clientes AS clientes_1 INNER JOIN
(bonos AS bonos_1 INNER JOIN (operaciones AS operaciones_1 LEFT JOIN
(traders INNER JOIN (bonos INNER JOIN (clientes LEFT INNER operaciones ON
clientes.id = operaciones.cliente) ON bonos.isin = operaciones.isin) ON
traders.id = operaciones.trader) ON operaciones_1.op_asoc = operaciones.id)
ON bonos_1.isin = operaciones_1.isin) ON clientes_1.id =
operaciones_1.cliente) ON traders_1.id = operaciones_1.trader WHERE
op_asoc=0;

Donde lo que cambié fue el join de operaciones por un left join, para que
las operaciones que tienen op_asoc tengan agregados los campos de la
operacion asociada, y los otros no tengan nada, y después el where haga que
no se repitan las operaciones que aparecen adentro del left join.

El tema es que cuando ejecuto esta consulta, access me responde como error
"La expresión de combinación no esta admitida ".

Lo que me extraña, es que una consulta mas simple que solo tenga dos tablas,
si funciona. Pongo una como ejemplo.

SELECT ops1.id AS id1, ops1.tdate AS tdate1, ops1.sdate AS sdate1,
ops1.trade AS trade1, ops1.isin AS isin1, ops1.cuantity AS cuantity1,
ops1.price AS price1, ops1.interests AS interests1, ops1.exchrate AS
exchrate1, ops1.cambio_actual AS cambio_actual1, ops1.trader AS trader1,
ops1.pb_fr AS pb_fr1,
ops1.cuantity*(ops1.price+ops1.interests)*ops1.exchrate AS ammount_uss1,
ops2.id AS id2, ops2.tdate AS tdate2, ops2.sdate AS sdate2, ops2.trade AS
trade2, ops2.isin AS isin2, ops2.cuantity AS cuantity2, ops2.price AS
price2, ops2.interests AS interests2, ops2.exchrate AS exchrate2,
ops2.cambio_actual AS cambio_actual2, ops2.trader AS trader2, ops2.pb_fr AS
pb_fr2, ops2.cuantity*(ops2.price+ops2.interests)*ops2.exchrate AS
ammount_uss2,
ops1.cuantity*(ops1.price+ops1.interests)*ops1.exchrate-ops2.cuantity*(ops2.
price+ops2.interests)*ops2.exchrate AS ganancia
FROM operaciones AS ops1 LEFT JOIN operaciones AS ops2 ON
ops2.op_asoc=ops1.id
WHERE ops1.op_asoc=0;

Esta consulta trae lo que quiero, pero no la descripción de los campos.

Desde ya, muchisimas gracias, y perdonen la extensión del mail.





---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.532 / Virus Database: 326 - Release Date: 27/10/03

Search Discussions

  • Julián Belistri at Nov 14, 2003 at 11:47 pm
    disculpen, pero tengo los caracteres de un artículo, y la cant. de palabras,
    me piden el tiempo aprox. de lectura, (para un argentino promedio), y no lo
    encuentro en ningún lado... ¿alguien tiene el dato?

    gracias.

    J
  • Informacion at Nov 15, 2003 at 12:14 am
    Hola a todos,

    Necesito hacer una consulta un poco especial, tengo 2 tablas relacionadas
    con un campo id, pero lo que quiero es que me muestre solo los id que no
    esten en la segunda tabla

    tabla 1 usuarios
    tabla 2 logs

    la cuestion es que tengo que hacer una consulta que me muestre todos los
    usuarios y cuente el numero de accesos de manera que tengo que relacionar
    las 2 tablas, todo funciona bien menos las que no tienen accesos, pero
    necesito que me muestre tambien los que no tienen accesos.

    Ejemplo:

    usuario: 1 accesos: 10
    usuario: 2 accesos: 0

    Alguna idea.

    Saludos
    Christian
  • Rafael Salazar at Nov 15, 2003 at 1:03 am

    At 14/11/2003 18:15, you wrote:
    la cuestion es que tengo que hacer una consulta que me muestre todos los
    usuarios y cuente el numero de accesos de manera que tengo que relacionar
    las 2 tablas, todo funciona bien menos las que no tienen accesos, pero
    necesito que me muestre tambien los que no tienen accesos.
    ¿Qué tal un LEFT JOIN?

    Rafael.
  • Informacion at Nov 15, 2003 at 3:45 am
    Lo siento nunca he utilizado LEFT JOIN, se hacer perfectamente relacionar 2
    tablas a traves de los id, pero no se como hacer para que me muestre los id
    que no estan relacionados.

    Saludos
    Christian

    ----- Original Message -----
    From: "Rafael Salazar" <rsalazar@ucol.mx>
    To: <lista@phpes.com>
    Sent: Friday, November 14, 2003 7:05 PM
    Subject: Re: [PHP-ES] Consulta SQL

    At 14/11/2003 18:15, you wrote:
    la cuestion es que tengo que hacer una consulta que me muestre todos los
    usuarios y cuente el numero de accesos de manera que tengo que relacionar
    las 2 tablas, todo funciona bien menos las que no tienen accesos, pero
    necesito que me muestre tambien los que no tienen accesos.
    ¿Qué tal un LEFT JOIN?

    Rafael.


    ---------------------------------------------------------------------
    Archivo On-line: http://www.phpes.com/
    via news: news://news.phpes.com/
    Manual PHP en español: http://www.php.net/manual/es/
    Para dar de baja la suscripción, mande un mensaje a:
    lista-unsubscribe@phpes.com


  • Lorena at Nov 15, 2003 at 3:54 am
    Puede ser un left outer join, o un inner join, si nos pasara los campos, y
    un ejemplo de los datos que tiene sería mas fácil que hacerlo imaginando, es
    como imposible saber como almacenas los datos de accesos.
    Igualmente validaría con un having count(tabla.campo)< X , y no se que se
    usa en mysql, pero en sqlservers es muy practico el CASE.


    ----- Original Message -----
    From: informacion <info@guatemalanetworks.com>
    To: <lista@phpes.com>
    Sent: Friday, November 14, 2003 9:15 PM
    Subject: [PHP-ES] Consulta SQL

    Hola a todos,

    Necesito hacer una consulta un poco especial, tengo 2 tablas relacionadas
    con un campo id, pero lo que quiero es que me muestre solo los id que no
    esten en la segunda tabla

    tabla 1 usuarios
    tabla 2 logs

    la cuestion es que tengo que hacer una consulta que me muestre todos los
    usuarios y cuente el numero de accesos de manera que tengo que relacionar
    las 2 tablas, todo funciona bien menos las que no tienen accesos, pero
    necesito que me muestre tambien los que no tienen accesos.

    Ejemplo:

    usuario: 1 accesos: 10
    usuario: 2 accesos: 0

    Alguna idea.

    Saludos
    Christian



    ---------------------------------------------------------------------
    Archivo On-line: http://www.phpes.com/
    via news: news://news.phpes.com/
    Manual PHP en español: http://www.php.net/manual/es/
    Para dar de baja la suscripción, mande un mensaje a:
    lista-unsubscribe@phpes.com
  • Informacion at Nov 15, 2003 at 2:16 pm
    Hola,

    Quiza no me explique bien, tengo 2 tablas, solo pongo el campo id que es el
    importante

    usuarios - id
    logs - id

    bien, para mostrar los valores relacionados uso esta sentencia

    SELECT usuarios.id FROM usuarios,logs WHERE usuarios.id = logs.id

    eso me saca todos los id que se relacionan entre las 2 tablas, pero necesito
    saber los usuarios.id que no estan en la tabla de logs.

    Saludos
    Christian
    ----- Original Message -----
    From: "lorena" <lorenajasminlopez@uol.com.ar>
    To: <lista@phpes.com>
    Sent: Friday, November 14, 2003 9:57 PM
    Subject: RE: [PHP-ES] Consulta SQL

    Puede ser un left outer join, o un inner join, si nos pasara los campos, y
    un ejemplo de los datos que tiene sería mas fácil que hacerlo imaginando, es
    como imposible saber como almacenas los datos de accesos.
    Igualmente validaría con un having count(tabla.campo)< X , y no se que se
    usa en mysql, pero en sqlservers es muy practico el CASE.


    ----- Original Message -----
    From: informacion <info@guatemalanetworks.com>
    To: <lista@phpes.com>
    Sent: Friday, November 14, 2003 9:15 PM
    Subject: [PHP-ES] Consulta SQL

    Hola a todos,

    Necesito hacer una consulta un poco especial, tengo 2 tablas
    relacionadas
    con un campo id, pero lo que quiero es que me muestre solo los id que no
    esten en la segunda tabla

    tabla 1 usuarios
    tabla 2 logs

    la cuestion es que tengo que hacer una consulta que me muestre todos los
    usuarios y cuente el numero de accesos de manera que tengo que
    relacionar
    las 2 tablas, todo funciona bien menos las que no tienen accesos, pero
    necesito que me muestre tambien los que no tienen accesos.

    Ejemplo:

    usuario: 1 accesos: 10
    usuario: 2 accesos: 0

    Alguna idea.

    Saludos
    Christian



    ---------------------------------------------------------------------
    Archivo On-line: http://www.phpes.com/
    via news: news://news.phpes.com/
    Manual PHP en español: http://www.php.net/manual/es/
    Para dar de baja la suscripción, mande un mensaje a:
    lista-unsubscribe@phpes.com

    ---------------------------------------------------------------------
    Archivo On-line: http://www.phpes.com/
    via news: news://news.phpes.com/
    Manual PHP en español: http://www.php.net/manual/es/
    Para dar de baja la suscripción, mande un mensaje a:
    lista-unsubscribe@phpes.com


  • Felipe Fernandez at Nov 15, 2003 at 2:49 pm
    select id from usuarios where id not in (select id from logs))

    informacion wrote:
    Hola,

    Quiza no me explique bien, tengo 2 tablas, solo pongo el campo id que es el
    importante

    usuarios - id
    logs - id

    bien, para mostrar los valores relacionados uso esta sentencia

    SELECT usuarios.id FROM usuarios,logs WHERE usuarios.id = logs.id

    eso me saca todos los id que se relacionan entre las 2 tablas, pero necesito
    saber los usuarios.id que no estan en la tabla de logs.

    Saludos
    Christian
    ----- Original Message -----
    From: "lorena" <lorenajasminlopez@uol.com.ar>
    To: <lista@phpes.com>
    Sent: Friday, November 14, 2003 9:57 PM
    Subject: RE: [PHP-ES] Consulta SQL



    Puede ser un left outer join, o un inner join, si nos pasara los campos, y
    un ejemplo de los datos que tiene sería mas fácil que hacerlo imaginando,
    es

    como imposible saber como almacenas los datos de accesos.
    Igualmente validaría con un having count(tabla.campo)< X , y no se que se
    usa en mysql, pero en sqlservers es muy practico el CASE.


    ----- Original Message -----
    From: informacion <info@guatemalanetworks.com>
    To: <lista@phpes.com>
    Sent: Friday, November 14, 2003 9:15 PM
    Subject: [PHP-ES] Consulta SQL



    Hola a todos,

    Necesito hacer una consulta un poco especial, tengo 2 tablas
    relacionadas

    con un campo id, pero lo que quiero es que me muestre solo los id que no
    esten en la segunda tabla

    tabla 1 usuarios
    tabla 2 logs

    la cuestion es que tengo que hacer una consulta que me muestre todos los
    usuarios y cuente el numero de accesos de manera que tengo que
    relacionar

    las 2 tablas, todo funciona bien menos las que no tienen accesos, pero
    necesito que me muestre tambien los que no tienen accesos.

    Ejemplo:

    usuario: 1 accesos: 10
    usuario: 2 accesos: 0

    Alguna idea.

    Saludos
    Christian



    ---------------------------------------------------------------------
    Archivo On-line: http://www.phpes.com/
    via news: news://news.phpes.com/
    Manual PHP en español: http://www.php.net/manual/es/
    Para dar de baja la suscripción, mande un mensaje a:
    lista-unsubscribe@phpes.com


    ---------------------------------------------------------------------
    Archivo On-line: http://www.phpes.com/
    via news: news://news.phpes.com/
    Manual PHP en español: http://www.php.net/manual/es/
    Para dar de baja la suscripción, mande un mensaje a:
    lista-unsubscribe@phpes.com






    ---------------------------------------------------------------------
    Archivo On-line: http://www.phpes.com/
    via news: news://news.phpes.com/
    Manual PHP en español: http://www.php.net/manual/es/
    Para dar de baja la suscripción, mande un mensaje a:
    lista-unsubscribe@phpes.com


  • Informacion at Nov 15, 2003 at 3:00 pm
    Perdon, fallo muy no dije que estoy trabajando en MYSQL, y que yo recuerde
    bien no se permiten subconsultas.

    Saludos
    Christian

    ----- Original Message -----
    From: "Felipe Fernandez" <danielfm@teleline.es>
    To: <lista@phpes.com>
    Sent: Saturday, November 15, 2003 8:47 AM
    Subject: Re: [PHP-ES] Consulta SQL

    select id from usuarios where id not in (select id from logs))

    informacion wrote:
    Hola,

    Quiza no me explique bien, tengo 2 tablas, solo pongo el campo id que es
    el
    importante

    usuarios - id
    logs - id

    bien, para mostrar los valores relacionados uso esta sentencia

    SELECT usuarios.id FROM usuarios,logs WHERE usuarios.id = logs.id

    eso me saca todos los id que se relacionan entre las 2 tablas, pero
    necesito
    saber los usuarios.id que no estan en la tabla de logs.

    Saludos
    Christian
    ----- Original Message -----
    From: "lorena" <lorenajasminlopez@uol.com.ar>
    To: <lista@phpes.com>
    Sent: Friday, November 14, 2003 9:57 PM
    Subject: RE: [PHP-ES] Consulta SQL



    Puede ser un left outer join, o un inner join, si nos pasara los campos,
    y
    un ejemplo de los datos que tiene sería mas fácil que hacerlo
    imaginando,
    es

    como imposible saber como almacenas los datos de accesos.
    Igualmente validaría con un having count(tabla.campo)< X , y no se que
    se
    usa en mysql, pero en sqlservers es muy practico el CASE.


    ----- Original Message -----
    From: informacion <info@guatemalanetworks.com>
    To: <lista@phpes.com>
    Sent: Friday, November 14, 2003 9:15 PM
    Subject: [PHP-ES] Consulta SQL



    Hola a todos,

    Necesito hacer una consulta un poco especial, tengo 2 tablas
    relacionadas

    con un campo id, pero lo que quiero es que me muestre solo los id que
    no
    esten en la segunda tabla

    tabla 1 usuarios
    tabla 2 logs

    la cuestion es que tengo que hacer una consulta que me muestre todos
    los
    usuarios y cuente el numero de accesos de manera que tengo que
    relacionar

    las 2 tablas, todo funciona bien menos las que no tienen accesos, pero
    necesito que me muestre tambien los que no tienen accesos.

    Ejemplo:

    usuario: 1 accesos: 10
    usuario: 2 accesos: 0

    Alguna idea.

    Saludos
    Christian



    ---------------------------------------------------------------------
    Archivo On-line: http://www.phpes.com/
    via news: news://news.phpes.com/
    Manual PHP en español: http://www.php.net/manual/es/
    Para dar de baja la suscripción, mande un mensaje a:
    lista-unsubscribe@phpes.com


    ---------------------------------------------------------------------
    Archivo On-line: http://www.phpes.com/
    via news: news://news.phpes.com/
    Manual PHP en español: http://www.php.net/manual/es/
    Para dar de baja la suscripción, mande un mensaje a:
    lista-unsubscribe@phpes.com






    ---------------------------------------------------------------------
    Archivo On-line: http://www.phpes.com/
    via news: news://news.phpes.com/
    Manual PHP en español: http://www.php.net/manual/es/
    Para dar de baja la suscripción, mande un mensaje a:
    lista-unsubscribe@phpes.com


  • Juan Carlos Borrero at Nov 17, 2003 at 3:46 pm
    para saber los usuarios.id que no estan en la tabla de logs puedes hacer un
    LEFT JOIN y averiguar por cualquiera de los las columnas del la tabla de
    logs que esten NULL

    JuanCaBo

    ----- Original Message -----
    From: "informacion" <info@guatemalanetworks.com>
    To: <lista@phpes.com>
    Sent: Saturday, November 15, 2003 10:01 AM
    Subject: Re: [PHP-ES] Consulta MYSQL

    Perdon, fallo muy no dije que estoy trabajando en MYSQL, y que yo recuerde
    bien no se permiten subconsultas.

    Saludos
    Christian

    ----- Original Message -----
    From: "Felipe Fernandez" <danielfm@teleline.es>
    To: <lista@phpes.com>
    Sent: Saturday, November 15, 2003 8:47 AM
    Subject: Re: [PHP-ES] Consulta SQL

    select id from usuarios where id not in (select id from logs))

    informacion wrote:
    Hola,

    Quiza no me explique bien, tengo 2 tablas, solo pongo el campo id que
    es
    el
    importante

    usuarios - id
    logs - id

    bien, para mostrar los valores relacionados uso esta sentencia

    SELECT usuarios.id FROM usuarios,logs WHERE usuarios.id = logs.id

    eso me saca todos los id que se relacionan entre las 2 tablas, pero
    necesito
    saber los usuarios.id que no estan en la tabla de logs.

    Saludos
    Christian
    ----- Original Message -----
    From: "lorena" <lorenajasminlopez@uol.com.ar>
    To: <lista@phpes.com>
    Sent: Friday, November 14, 2003 9:57 PM
    Subject: RE: [PHP-ES] Consulta SQL



    Puede ser un left outer join, o un inner join, si nos pasara los
    campos,
    y
    un ejemplo de los datos que tiene sería mas fácil que hacerlo
    imaginando,
    es

    como imposible saber como almacenas los datos de accesos.
    Igualmente validaría con un having count(tabla.campo)< X , y no se que
    se
    usa en mysql, pero en sqlservers es muy practico el CASE.


    ----- Original Message -----
    From: informacion <info@guatemalanetworks.com>
    To: <lista@phpes.com>
    Sent: Friday, November 14, 2003 9:15 PM
    Subject: [PHP-ES] Consulta SQL



    Hola a todos,

    Necesito hacer una consulta un poco especial, tengo 2 tablas
    relacionadas

    con un campo id, pero lo que quiero es que me muestre solo los id que
    no
    esten en la segunda tabla

    tabla 1 usuarios
    tabla 2 logs

    la cuestion es que tengo que hacer una consulta que me muestre todos
    los
    usuarios y cuente el numero de accesos de manera que tengo que
    relacionar

    las 2 tablas, todo funciona bien menos las que no tienen accesos,
    pero
    necesito que me muestre tambien los que no tienen accesos.

    Ejemplo:

    usuario: 1 accesos: 10
    usuario: 2 accesos: 0

    Alguna idea.

    Saludos
    Christian



    ---------------------------------------------------------------------
    Archivo On-line: http://www.phpes.com/
    via news: news://news.phpes.com/
    Manual PHP en español: http://www.php.net/manual/es/
    Para dar de baja la suscripción, mande un mensaje a:
    lista-unsubscribe@phpes.com


    ---------------------------------------------------------------------
    Archivo On-line: http://www.phpes.com/
    via news: news://news.phpes.com/
    Manual PHP en español: http://www.php.net/manual/es/
    Para dar de baja la suscripción, mande un mensaje a:
    lista-unsubscribe@phpes.com






    ---------------------------------------------------------------------
    Archivo On-line: http://www.phpes.com/
    via news: news://news.phpes.com/
    Manual PHP en español: http://www.php.net/manual/es/
    Para dar de baja la suscripción, mande un mensaje a:
    lista-unsubscribe@phpes.com




    ---------------------------------------------------------------------
    Archivo On-line: http://www.phpes.com/
    via news: news://news.phpes.com/
    Manual PHP en español: http://www.php.net/manual/es/
    Para dar de baja la suscripción, mande un mensaje a:
    lista-unsubscribe@phpes.com

  • Rafael Salazar at Nov 16, 2003 at 12:11 am

    At 15/11/2003 08:18, you wrote:
    Hola,

    Quiza no me explique bien, tengo 2 tablas, solo pongo el campo id que es el
    importante

    usuarios - id
    logs - id

    bien, para mostrar los valores relacionados uso esta sentencia

    SELECT usuarios.id FROM usuarios,logs WHERE usuarios.id = logs.id

    eso me saca todos los id que se relacionan entre las 2 tablas, pero necesito
    saber los usuarios.id que no estan en la tabla de logs.
    Si entendí bien (últimamente parece que no se me da)
    SELECT U.id FROM usuarios U LEFT JOIN logs L USING( id )
    te lista, o al menos debería, todos los registros aún cuando no exista una
    correspondencia en la tabla logs. Si necesitas únicamente aquellos que
    _no_ tienen dicha correspondencia sólo basta agregar algo así
    WHERE( L.id IS NULL )

    Espero sirva,
    Rafael.
  • Javier at Nov 15, 2003 at 8:49 pm

    On 14/11/2003 at 20:50 Julián Belistri wrote:
    disculpen, pero tengo los caracteres de un artículo, y la cant. de
    palabras,
    me piden el tiempo aprox. de lectura, (para un argentino promedio), y no lo
    encuentro en ningún lado... ¿alguien tiene el dato?

    En Clarin suelen poner el tiempo promedio. Podrias ver la cantidad de
    palabras de una nota de Clarin y dividirla por el tiempo para tener un
    estimativo...no ?


    <jl>

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupphp-general-es @
categoriesphp
postedNov 14, '03 at 10:00p
activeNov 17, '03 at 3:46p
posts12
users8
websitephp.net

People

Translate

site design / logo © 2022 Grokbase