Hola lista Me falto un group by :-P
Select * from cabecera x inner join detalles y on (x.numero_formulario=y.numero_formulario) join ( Select y.numero_formulario from detalles as y group by y.numero_formulario Except Select y.numero_formulario from detalles as y where y.codigo_producto not in (1) group by y.numero_formulario ) as z on y.numero_formulario = z.numero_formulario El sept. 13, 2015 8:23 AM, "Hellmuth Vargas" <hiv...@gmail.com> escribió: > Buenos días Lista > > Verificar con esta > > Select * > > from cabecera x inner join detalles y on > (x.numero_formulario=y.numero_formulario) join ( > Select y.numero_formulario from detalles as y group by 1 > Except > Select y.numero_formulario from detalles as y where y.codigo_producto not > in (1)) as z on y.numero_formulario = z.numero_formulario > El sept. 13, 2015 7:43 AM, "Carlos Perez" <carlos.pe...@syswarp.com.ar> > escribió: > >> Perdon no puse código porque estoy respondiendo del celular y tengo dedos >> de morcilla. Prometo que en cuanto agarre una pc escribo. >> El query de francisco es correcto pero faltaria buscarle la vuelta para >> usar = y <> reemplazando el in() que en definitiva es una función.si >> <http://xn--funcin-fxa.si> el código tiene un indice podes probar lo lo >> que te comenté escribiendo delante de ambas consultas explain plan... >> Lo que comento es para que una vez hecha tu consulta te olvides para >> siempre de la misma y no tengas problemas futuros si esas tablss crecen con >> millones de registros. >> Espero haber sido claro, disculpen lo escueto pero igual de cada parte de >> lo escrito la comunidad dedico capitulos enteros que son mejores que esta >> explicacion que solo busca orientar. >> >> Enviado con Aquamail para Android >> http://www.aqua-mail.com >> >> >> El 13 de septiembre de 2015 09:15:55 Horacio Miranda <hmira...@gmail.com> >> escribio: >> >> >>> >>> On 9/13/2015 11:31 PM, José Fermín Francisco Ferreras wrote: >>> >>>> select * >>>> from cabecera x inner join detalles y on >>>> (x.numero_formulario=y.numero_formulario) >>>> where y.codigo_producto not in (1) >>>> >>>> >>> select * >>> from cabecera x,detalles y >>> where >>> x.numero_formulario=y.numero_formulario and >>> y.codigo_producto not in (1) ; >>> >>> >>> Prueba con esto por favor. >>> >>> Pero lo hace mal, ya que lo que hace es excluirme del listado los >>>> formularios donde aparecen las naranjas. >>>> >>>> Y lo que se desea seleccionar los formularios donde no existen naranjas >>>> facturadas. >>>> >>>> >>>> >>>> ing. José Fermín Francisco Ferreras >>>> San Francisco de Macorís, Rep. Dom. >>>> >>>> >>>> > Subject: Re: [pgsql-es-ayuda] Buscar datos en detalle >>>> > To: josefermi...@hotmail.com; pgsql-es-ayuda@postgresql.org >>>> > From: hmira...@gmail.com >>>> > Date: Sun, 13 Sep 2015 15:25:32 +1200 >>>> > >>>> > Copia y pega lo que tienes de tu SQL, que problema tienes ? >>>> > >>>> > On 9/13/2015 2:12 PM, José Fermín Francisco Ferreras wrote: >>>> > > Ejemplo de lo que se necesita: >>>> > > >>>> > > numero_formulario: 1 >>>> > > Productor: 64 >>>> > > fecha: 05/09/2015 >>>> > > hora: 08:56:00 >>>> > > Monto_Total: 5000.00 >>>> > > numero_formulario: 1 >>>> > > codigo_producto: 1 >>>> > > Producto: Naranja >>>> > > Cantidad: 5 >>>> > > >>>> > > numero_formulario: 2 >>>> > > Productor: 2 >>>> > > fecha: 06/09/2015 >>>> > > hora: 10:00:00 >>>> > > Monto_Total: 14500.00 >>>> > > numero_formulario: 2 >>>> > > codigo_producto: 2 >>>> > > Producto: Pera >>>> > > Cantidad: 2 >>>> > > numero_formulario: 2 >>>> > > codigo_producto: 1 >>>> > > Producto: Naranja >>>> > > Cantidad: 3 >>>> > > >>>> > > numero_formulario: 3 >>>> > > Productor: 10 >>>> > > fecha: 05/09/2015 >>>> > > hora: 13:30:00 >>>> > > Monto_Total: 4500.00 >>>> > > numero_formulario: 3 >>>> > > codigo_producto: 3 >>>> > > Producto: Piña >>>> > > Cantidad: 1 >>>> > > >>>> > > numero_formulario: 4 >>>> > > Productor: 11 >>>> > > fecha: 10/09/2015 >>>> > > hora: 13:50:00 >>>> > > Monto_Total: 11800.00 >>>> > > numero_formulario: 4 >>>> > > codigo_producto: 3 >>>> > > Producto: Piña >>>> > > Cantidad: 1 >>>> > > numero_formulario: 4 >>>> > > codigo_producto: 2 >>>> > > Producto: Pera >>>> > > Cantidad: 1 >>>> > > numero_formulario: 4 >>>> > > codigo_producto: 4 >>>> > > Producto: Sandia >>>> > > Cantidad: 6 >>>> > > >>>> > > Cuando ejecute la consulta debería desplegar los resultados >>>> > > correspondientes a los formularios #3 y #4, ya que en esos no se >>>> facturó >>>> > > ninguna naranja. >>>> > > >>>> > > Nota: Este ejemplo lo represento como si hubiera hecho un join de >>>> las >>>> > > tablas. >>>> > > >>>> > > >>>> > > >>>> > > ing. José Fermín Francisco Ferreras >>>> > > San Francisco de Macorís, Rep. Dom. >>>> > > >>>> > > >>>> > > > Subject: Re: [pgsql-es-ayuda] Buscar datos en detalle >>>> > > > To: josefermi...@hotmail.com; pgsql-es-ayuda@postgresql.org >>>> > > > From: hmira...@gmail.com >>>> > > > Date: Sun, 13 Sep 2015 13:34:03 +1200 >>>> > > > >>>> > > > >>>> > > > >>>> > > > On 9/13/2015 10:52 AM, José Fermín Francisco Ferreras wrote: >>>> > > > > Buenas tardes!! >>>> > > > > >>>> > > > > Estoy teniendo problemas con una consulta. Resulta que necesito >>>> > > > > consultar en dos tablas: >>>> > > > > -Maestro >>>> > > > > numero_formulario** >>>> > > > > productor >>>> > > > > fecha >>>> > > > > hora >>>> > > > > monto_total >>>> > > > > >>>> > > > > detalles >>>> > > > > numero_formulario*- >>>> > > > > codigo_producto >>>> > > > > producto >>>> > > > > cantidad >>>> > > > > >>>> > > > > Resulta que necesito buscar en cuales formularios no se >>>> facturó el >>>> > > > > producto llamado "Naranja" >>>> > > > > >>>> > > > >>>> > > > SELECT >>>> > > > distinct numero_formulario >>>> > > > FROM >>>> > > > detalles >>>> > > > WHERE >>>> > > > producto <> 'Naranja'; >>>> > > > >>>> > > > Esto es lo que necesitas ? >>>> > > > >>>> > > > > Lista de producto que se venden: >>>> > > > > naranja >>>> > > > > pera >>>> > > > > piña >>>> > > > > sandia >>>> > > > > >>>> > > > > >>>> > > > > >>>> > > > > ing. José Fermín Francisco Ferreras >>>> > > > > San Francisco de Macorís, Rep. Dom. >>>> > >>>> > - >>>> > Enviado a la lista de correo pgsql-es-ayuda >>>> (pgsql-es-ayuda@postgresql.org) >>>> > Para cambiar tu suscripción: >>>> > http://www.postgresql.org/mailpref/pgsql-es-ayuda >>>> >>> >>> - >>> Enviado a la lista de correo pgsql-es-ayuda ( >>> pgsql-es-ayuda@postgresql.org) >>> Para cambiar tu suscripción: >>> http://www.postgresql.org/mailpref/pgsql-es-ayuda >>> >> >> >> >> - >> Enviado a la lista de correo pgsql-es-ayuda ( >> pgsql-es-ayuda@postgresql.org) >> Para cambiar tu suscripción: >> http://www.postgresql.org/mailpref/pgsql-es-ayuda >> >