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 05-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.289
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
Iba a decir que perecen los deberes de clase, cuando has colocado tu segundo mensaje.
Deberías intentar hacer alguna de las consultas y colocarla aquí (lo que te salga), y en ese caso intentaremos ayudarte, pero poner directamente los deberes aquí para que los resolvamos, no parece muy correcto.

Intenta hacer alguna y pregunta sobre lo que tengas dudas o no entiendas.
__________________
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
  #2  
Antiguo 05-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
Iba a decir que perecen los deberes de clase, cuando has colocado tu segundo mensaje.
Deberías intentar hacer alguna de las consultas y colocarla aquí (lo que te salga), y en ese caso intentaremos ayudarte, pero poner directamente los deberes aquí para que los resolvamos, no parece muy correcto.

Intenta hacer alguna y pregunta sobre lo que tengas dudas o no entiendas.
Código SQL [-]

 --Código, descripción y cantidad de productos vendidos durante un mes dado
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


--Operaciones de un cliente dado durante un período indicado
select dni, forma_de_pago
from compras
where fecha_compra between '01/12/2014' and '31/12/2014'


--Saldo en cuenta corriente de un cliente dado
select saldo, dni
from pagos, compras
where pagos.num_factura_compra = compras.num_factura_compra and forma_de_pago = 'Cuenta Corriente'


--Detalle de operaciones en cuenta corriente de un cliente dado
select *
from compras
where forma_de_pago = 'Cuenta Corriente'


--Datos de proveedores que suministran aguas minerales y gaseosas
select *
from proveedores
where cod_prov in 
    (select cod_prov
     from pedidos
     where cod_prod in
          (select cod_prod
           from productos
           where descripcion = 'Gaseosas' or descripcion = 'Aguas minerales'))         


--Datos y cantidades de productos más vendidos durante un mes dado.
select marca, count(*) as [Total de productos vendidos] 
from productos, detallecompra, compras
where detallecompra.cod_prod = productos.cod_prod and MONTH(fecha_compra)=11
group by marca
order by (COUNT(*)) desc


--Ganancia obtenida en un período dado.    
select sum (importe_total) as [Ganancia]
from compras
where fecha_compra between '01/12/2014' and '31/12/2014'


--Medios de pagos más utilizados en el último trimestre.    
select forma_de_pago, COUNT(*) as [Veces que fue utilizado]
from compras
where fecha_compra between '01/10/2014' and '31/12/2014'
group by forma_de_pago


--Totales de compras realizadas por familias y grupos de productos.  
select count(*) as [Total], familia.tipo as [Tipo de familia], grupo.tipo as [Tipo de grupo]
from grupo, familia, detallecompra, productos
where grupo.cod_grupo = productos.cod_grupo and familia.cod_familia = productos.cod_familia and detallecompra.cod_prod = productos.cod_prod
group by familia.tipo, grupo.tipo
__________________
https://www.facebook.com/riverplateoficial
Responder Con Cita
  #3  
Antiguo 05-11-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Y cuál es el problema?
Responder Con Cita
  #4  
Antiguo 05-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.289
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
Cita:
Empezado por eennzzoo Ver Mensaje
[sql]
Mucho mejor...

Cita:
Empezado por Casimiro Notevi Ver Mensaje
¿Y cuál es el problema?
Eso digo yo.
¿Te dan error?
¿No salen los datos?
__________________
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
  #5  
Antiguo 05-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.289
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
Revisando un poco....

Código SQL [-]
 --Código, descripción y cantidad de productos vendidos durante un mes dado
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

Si no entiendo mal, los productos "vendidos" deberían ser aquellos que tienen factura.
Por lo tanto deberías buscar:

Facturas en el mes concreto y a partir de ahí (JOIN) acceder a los productos (ya que la factura tiene un cód. de producto). Si haces la JOIN de esas 2 tablas ya tienes: CODIGO, DESCRIPCION y CANTIDAD DEL PRODUCTO y la FECHA (para el where).

Prueba a hacer esta (con JOIN) a ver qué sale...

NOTA: Para añadir tablas diferentes a una SQL normalmente hay que usar JOIN. Por eso te está fallando la que pones.

Si en lugar de facturas, usas compras, es similar. En COMPRAS tienes la FECHA, en DETALLE_COMPRAS el CODIGO y la CANTIDAD y en PRODUCTOS la DESCRIPCIÓN.
Pero esas tres tablas deberán estar en la SQL unidas mediante JOIN.
__________________
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
  #6  
Antiguo 05-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.289
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
Un ejemplo práctico de lo que digo:

Valores de la tabla de compras:
Código SQL [-]
Select *
from COMPRAS

Si quiero 2 campos de compras (fecha y dni) puedo hacer esto:

Código SQL [-]
Select compras.fecha_compra, compras.dni
from compras

Si a eso quiero añadir el nombre del cliente; Como está en otra tabla distinta deberé añadir la tabla de clientes a la SQL.
Y además decirle al sistema cómo se relacionan ambas tablas.
Para ralacionaer ambas tablas debo hacer una JOIN y en el ON indicar los campos que se relacionan:

Código SQL [-]
Select compras.fecha_compra, compras.dni, clientes.nombre
from compras
JOIN Clientes on compras.dni=clientes.dni

Fíjate en la tercera línea; Es algo así como decir que la tabla de clientes la añado a la consulta y la relaciono con la tabla de compras de la forma:
"compras.dni=clientes.dni"


De esta forma ya sabes cómo se relaxcionan tablas y puedes añadir campos de diferentes tablas a la consulta, pero siempre deberás añadirlas y relacionarlas de forma coherente.

Otro ejemplo; En las facturas tengo los datos de cada factura, pero no tengo el NOMBRE DEL PROVEEDOR. Si quiero obtener el nombre del proveedor deberé relacionar ambas tablas (si se puede); en este caso sí, utilizando el COD_PROV.

Código SQL [-]
Select facturas.*, proveedores.nombre
from Facturas
join proveedores on facturas.cod_prov=proveedores.Cod_prov
__________________
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
  #7  
Antiguo 05-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
Empecemos con la primera, tal y como te he explicado más arriba.
Intenta hacerla utilizando JOIN's.
Nos centramos en una y lo comentamos, cuando lo entiendas las demás deberán salir de forma similar.
__________________
https://www.facebook.com/riverplateoficial

Última edición por Neftali [Germán.Estévez] fecha: 06-11-2014 a las 12:42:02.
Responder Con Cita
  #8  
Antiguo 06-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
Al primero no le encuentro la vuelta
--Código, descripción y cantidad de productos vendidos durante un mes dado
  • Tengo la tabla productos la cual tiene el cod_prod y la descripcion
  • Tengo la tabla detallecompra la cual tiene el num_factura_compra, el cod_prod y la cantidad
  • Y la tabla compras la cual tiene el num_factura_compra y la fecha_compra
Probe con esta consulta y me devuelve filas iguales

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
__________________
https://www.facebook.com/riverplateoficial
Responder Con Cita
  #9  
Antiguo 06-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.

Es que esa selección está inconexa, no existe relación alguna entre columnas y que filtre las tablas en juego.

No miré a fondo los campos que establecen las relaciones entre tus tablas, pero en líneas generales la consulta debería ser algo parecido a esto:
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

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
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 01:22:52.


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