Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MS SQL Server
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-11-2014
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.297
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Pido disculpas, porque intentando añadir una respuesta y modificar una existente he "cambiado" el contenido de uno de tus mensajes [eennzzoo], en concreto este. Me hice un lío.

Tal y como te explica ecfisa, a este consulta tuya, le falta conectar las tablas (usando JOIN y ON)

Cita:
Empezado por eennzzoo Ver Mensaje
Código SQL [-]
select productos.cod_prod, descripcion, detallecompra.cantidad
from productos, detallecompra, compras
where fecha_compra between '01/12/2014' and '31/12/2014'
group by productos.cod_prod, descripcion, detallecompra.cantidad
De forma que el resultado debe quedar algo como lo que te ha puesto él:

Cita:
Empezado por ecfisa Ver Mensaje
Código SQL [-]
SELECT P.COD_PROD, P.DESCRIPCION, D.CANTIDAD
FROM PRODUCTOS P
INNER JOIN DETALLECOMPRA D ON P.COD_PROD = D.COD_PROD
INNER JOIN COMPRAS C ON D.NUM_FACTURA = C.NUM_FACTURA_COMPRA
WHERE C.FECHA_COMPRA BETWEEN '01/12/2014' AND '31/12/2014'
GROUP BY P.COD_PROD, P.DESCRIPCION, D.CANTIDAD
Ahora que las tienes las dos, fíjate en la diferencia, intenta entenderlo y corregirlo en las siguientes.
él ha utilizado un "Alias" para cada tabla (la letra que hay detrás del nombre) y las ha unido con JOIN..ON
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.

Última edición por Neftali [Germán.Estévez] fecha: 06-11-2014 a las 20:40:54.
Responder Con Cita
  #2  
Antiguo 07-11-2014
Avatar de eennzzoo
eennzzoo eennzzoo is offline
Miembro
NULL
 
Registrado: nov 2013
Ubicación: Argentina
Posts: 59
Poder: 11
eennzzoo Va por buen camino
Cita:
Empezado por Neftali Ver Mensaje
Pido disculpas, porque intentando añadir una respuesta y modificar una existente he "cambiado" el contenido de uno de tus mensajes [eennzzoo], en concreto este. Me hice un lío.

Tal y como te explica ecfisa, a este consulta tuya, le falta conectar las tablas (usando JOIN y ON)



De forma que el resultado debe quedar algo como lo que te ha puesto él:



Ahora que las tienes las dos, fíjate en la diferencia, intenta entenderlo y corregirlo en las siguientes.
él ha utilizado un "Alias" para cada tabla (la letra que hay detrás del nombre) y las ha unido con JOIN..ON
Probe de esa forma pero me devuelve esto

Y en detallecompra tengo eso. Me tendria que mostrar
COD_PROD DESCRIPCION CANTIDAD
1 Aguas minerales 3
2 Gaseosas 1

Gracias por la ayuda.
__________________
https://www.facebook.com/riverplateoficial

Última edición por Casimiro Notevi fecha: 07-11-2014 a las 16:33:46.
Responder Con Cita
  #3  
Antiguo 07-11-2014
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.297
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
A mi, esta:
Código SQL [-]
SELECT P.COD_PROD, P.DESCRIPCION, D.CANTIDAD
FROM PRODUCTOS P
INNER JOIN DETALLECOMPRA D ON P.COD_PROD = D.COD_PROD
INNER JOIN COMPRAS C ON D.NUM_FACTURA_COMPRA = C.NUM_FACTURA_COMPRA
WHERE C.FECHA_COMPRA BETWEEN '12/01/2014' AND '12/31/2014'
GROUP BY P.COD_PROD, P.DESCRIPCION, D.CANTIDAD

Me da esto:

__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 07-11-2014
Avatar de eennzzoo
eennzzoo eennzzoo is offline
Miembro
NULL
 
Registrado: nov 2013
Ubicación: Argentina
Posts: 59
Poder: 11
eennzzoo Va por buen camino
Cita:
Empezado por Neftali Ver Mensaje
A mi, esta:
Código SQL [-]
SELECT P.COD_PROD, P.DESCRIPCION, D.CANTIDAD
FROM PRODUCTOS P
INNER JOIN DETALLECOMPRA D ON P.COD_PROD = D.COD_PROD
INNER JOIN COMPRAS C ON D.NUM_FACTURA_COMPRA = C.NUM_FACTURA_COMPRA
WHERE C.FECHA_COMPRA BETWEEN '12/01/2014' AND '12/31/2014'
GROUP BY P.COD_PROD, P.DESCRIPCION, D.CANTIDAD

Me da esto:

Pero si hay 4 productos en total 3 aguas y 1 gaseosa.
__________________
https://www.facebook.com/riverplateoficial
Responder Con Cita
  #5  
Antiguo 08-11-2014
Avatar de eennzzoo
eennzzoo eennzzoo is offline
Miembro
NULL
 
Registrado: nov 2013
Ubicación: Argentina
Posts: 59
Poder: 11
eennzzoo Va por buen camino
Cita:
Empezado por eennzzoo Ver Mensaje
Pero si hay 4 productos en total 3 aguas y 1 gaseosa.
Ya lo solucione, pero no logro solucionar este:
Código SQL [-]
select *
from proveedores
inner join pedidos
on proveedores.cod_prov = pedidos.cod_prov
inner join productos
on pedidos.cod_prod = productos.cod_prod
where productos.descripcion = 'Gaseosas' and productos.descripcion = 'Aguas minerales'

Probe con esa consulta pero no devuelve nada.
En pedidos y productos tengo esto:

Me tendria que mostrar los datos del proveedor 2 ya que suministra los 2 productos.Gracias.
__________________
https://www.facebook.com/riverplateoficial
Responder Con Cita
  #6  
Antiguo 08-11-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola eennzzoo.
Cita:
Empezado por eennzzoo Ver Mensaje
Ya lo solucione, pero no logro solucionar este:
Código SQL [-]
...
where productos.descripcion = 'Gaseosas' and productos.descripcion = 'Aguas minerales'
Probe con esa consulta pero no devuelve nada.
...
Pero analicemos... ¿ Existe al menos un producto cuya columna descripcion tenga los valores 'Gaseosas' y 'Aguas minerales' a la vez ?

No sé la finalidad de la consulta, pero tal vez deberias usar OR como operador lógico.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 08-11-2014 a las 17:21:34.
Responder Con Cita
  #7  
Antiguo 08-11-2014
Avatar de eennzzoo
eennzzoo eennzzoo is offline
Miembro
NULL
 
Registrado: nov 2013
Ubicación: Argentina
Posts: 59
Poder: 11
eennzzoo Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola eennzzoo.

Pero analicemos... ¿ Existe al menos un producto cuya columna descripcion tenga los valores 'Gaseosas' y 'Aguas minerales' a la vez ?

No sé la finalidad de la consulta, pero tal vez deberias usar OR como operador lógico.

Saludos
Claro pense en eso, pero en descripcion viene gaseosas o aguas minerales, pero no los dos juntos. Porque lo que pide la consulta es el proveedor/es que suministran gaseosas y aguas minerales. Seria el caso del proveedor 2. Y colocando or devuelve el proveedor 1 y dos veces el proveedor 2.
__________________
https://www.facebook.com/riverplateoficial
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Eficiencia de consultas paramétricas vs consultas estáticas movorack Conexión con bases de datos 9 15-07-2014 14:49:34
Consultas con SQL luxus Conexión con bases de datos 6 26-06-2006 15:19:35
Consultas SQL V.S. Consultas Clipper AGAG4 SQL 7 20-12-2005 15:59:31
Consultas silviodp Conexión con bases de datos 6 05-08-2004 23:44:24
Consultas NickName Firebird e Interbase 1 27-11-2003 05:37:27


La franja horaria es GMT +2. Ahora son las 05:13:27.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi