elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
27 Mayo 2012, 10:05  


Tema destacado: Únete al Grupo Steam elhacker.NET

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Ejercicios
| | | |-+  Corregidme estos ejercicios de sql
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Corregidme estos ejercicios de sql  (Leído 4,144 veces)
sempus
Dakishimetai no ni...
Colaborador
***
Desconectado Desconectado

Mensajes: 2.326


GJDAM 愛している


Ver Perfil
Re: Corregidme estos ejercicios de sql
« Respuesta #15 en: 20 Abril 2009, 22:55 »

xD
es el mismo que habias colocado antes, osea que yo no lei bien  :-\

segun entiendo el enunciado,entonces el articulo (como el enunciado lo dice ) no tiene que ir agrupado.

digamos que vendio A0001 3 veces

Ventas del Dia:dd/mm/aaaa
DNI:11.111.111z           Nombre: cliente
Direccion:         Poblacion:        Provincia:

codigo - cantidad - precio - valor
A0001         1            10      10
A0001         10          10      100
A0001         100        100    10000

total: 11100

segun entiendo lo que deberias hacer serian dos consultas, una para cabecera y pie de reporte y la otra para sacar el detalle de la venta.

Para cabecera
Código
SELECT cl.dni, cl.nombre, cl.direccion, cl.poblacion, cl.provincia, SUM(v.cantidadvendida*a.precio) TOTAL
FROM articulos a, ventas v, clientes cl
WHERE cl.dni=v.dni
AND  a.codigo=v.codigo
GROUP BY cl.dni, cl.nombre, cl.direccion, cl.poblacion, cl.provincia, a.descripcion
ORDER BY v.codi,a.descripcion
 

para detalle

Código
SELECT v.codigo, a.descripcion, v.cantidadvendida, a.precio, (v.cantidadvendida*a.precio) valor
FROM articulos a, ventas v, clientes cl
WHERE cl.dni=v.dni AND  a.codigo=v.codigo
ORDER BY v.codi,a.descripcion;
 
claro que esta incompleto, porque nose como manejar las cosas en oracle, pero creo que todo lo demas que tienes de codigo es para dejar un cliente en una sola pagina, porque en estas dos consultas se toman todos los clientes, y no sabemos quien en quien en la de detalle, creo que seria necesario en la consulta de detalle colocar solamente el codigo del cliente, y asi en el reporte hacer la agrupacion,en los reportes que yo suelo usar puedes agrupar datos pero no como hace el group by.

En la consulta hay mas de un codigo de cliente (en las dos consultas), y al agruparlos en el reporte, alli se separan, nose si me entiendes?
que gestor para reportes usas ? oracle ya tiene el suyo?

a menos que filtres el cliente que quieres ver en el where

Código
WHERE v.dni=0001
 

porque con el
Código
WHERE cl.dni=v.dni
 
tomas todos los clientes

salu2


« Última modificación: 20 Abril 2009, 23:09 por sempus » En línea

...si la tuviera detendría el tiempo para verla como lo hago en este momento y seria feliz eternamente...
Descarga openSUSE
CrÄsH


Desconectado Desconectado

Mensajes: 622


========


Ver Perfil
Re: Corregidme estos ejercicios de sql
« Respuesta #16 en: 21 Abril 2009, 00:42 »

BREAK ON dni skip  page -> Esto es para que cada pagina muestre las ventas de cada cliente, ya que el enunciado dice: "Con una pagina por cliente..."
COMPUTE SUM LABEL 'SUMA' OF TOTAL ON PAGE-> esto es para que haga un SUM en cada Break, es decir en cada pagina hara un SuM, el cual aparecera al final de cada pagina, es decir, que sumara lo que se ha vendido al cliente.

Vaya lio que llevo ya.

haber si nos aclaramos.
Cada pagina se mostrara asi:

Pagina1:
---------
Ventas del Dia:22/04/09
DNI:11.111.111z           Nombre: JOSE MORENO
Direccion: Balmes,3      Poblacion:madrid        Provincia:madrid

VENTAS:

CODIGO  DESCRIPCION   CANTIDAD  PRECIO  TOTAL
A0001      ArTICLE1             4          15,00     60,00
A0005      ArTICLE5             7          5,00              35,00
A0015      ArTICLE15            2          20,00     40,00

SUMA                135,00

Pagina 2
----------
Ventas del Dia:23/04/09
DNI:22.333.111B          Nombre: LUIS PUENTES
Direccion: zzzzzz      Poblacion:BARCELONA       Provincia:barcelona

VENTAS:

CODIGO  DESCRIPCION   CANTIDAD  PRECIO  TOTAL
A0006      ArTICLE6             5          5,00              30,00
A0008      ArTICLE8            5          10,00              50,00
A0013      ArTICLE13           3          20,00                60,00

SUMA                140,00

Fijate que los datos(ventas del dia, dni, nombre) van cambiando segun el cliente.Y asi para todos los clientes.

Hay alguna forma para que kede una select, siguiendo el primer modelo que puse??


Me puedes decir si esta otra select esta bien?
Código:
Con las siguientes tablas:
Alumnos(DNI, nombre,dirección,población,dpostal,provincia,curso,grupo)
Asignaturas(CODIGO,nombre,profesor,grupo)
Notas(dni,código,eval,nota)


Formato:
DNI   NOMBRE   CODIGO   ASIGNATURA  NOTA _MEDIANA
---------------------------------------------------------------------------------
SELECT al.dni, al.nombre, as.codigo,as.nombre,AVG(n.nota) nota_mediana
From  alumnos al, asignaturas as, notas n
WHERE al.dni=n.dni
And as.codigo=n.codigo
GROUP BY al.dni, al.nombre, as.codigo,as.nombre
ORDER BY al.dni;

Muchas Gracias.


En línea

~~~~~~~~~~~~~~~~
sempus
Dakishimetai no ni...
Colaborador
***
Desconectado Desconectado

Mensajes: 2.326


GJDAM 愛している


Ver Perfil
Re: Corregidme estos ejercicios de sql
« Respuesta #17 en: 22 Abril 2009, 04:19 »

hola de nuevo.

pues segun entiendo en el enunciado, las ventas no seran agrupadas, por lo tanto deberias quitar el sum( ) de tu consulta original. y eliminar el group by .

el sum( ) hasta donde entiendo no lo necesitas porque ya estas opteniendo el total de cada pagina con el

Citar
COMPUTE SUM LABEL 'SUMA' OF TOTAL ON PAGE
ahora, en ambos ejemplos me das un ejemplo con codigos no repetidos, cuando en el enunciado dice que si se podran repetir :P pero bueno, creo que solo es un ejemplo ^^

lo otro que pones de alumno esta bien ;)

salu2
« Última modificación: 23 Abril 2009, 16:42 por sempus » En línea

...si la tuviera detendría el tiempo para verla como lo hago en este momento y seria feliz eternamente...
Descarga openSUSE
CrÄsH


Desconectado Desconectado

Mensajes: 622


========


Ver Perfil
Re: Corregidme estos ejercicios de sql
« Respuesta #18 en: 23 Abril 2009, 15:41 »

Siento molestarte de nuevo, pero te prometo que este sera el ultimo.
Con las siguientes tablas:
Alumnos(DNI, nombre,dirección,población,dpostal,provincia,curso,grupo)
Asignaturas(CODIGO,nombre,profesor,grupo)
Notas(dni,código,eval,nota)

2-Escribe las instrucciones necsarias para imprimir el boletín de  notas de cada alumno en una evaluación determinada.
Los valores posibles de campo eval(evaluación) son:1,2,3…
Código:
SET ECHO OFF
SET VERIFY OFF
DEFINE evaluación
DEFINE alumno
Break on dni skip page
Compute avg of sum(n.nota) on page
Column eval noprint new_value vneval
Column dni noprint new_value vadni
Column nombre noprint new_value vanombre
Column curso noprint new_value vacurso
Column grupo noprint new_value vagrupo
TTI center ‘Boletin de notas de la evaluacion’ vneval skip 1
‘DNI:’vadni ‘Nombre:’ vanombre ‘Curso:’vacurso ‘Grupo:’vagrupo skip 2
Left ‘Asignaturas:’
Select n.eval, a.dni,a.nombre, a.curso,a.grupo,as.codigo, as.nombre,n.nota
From alumnos a,notas n , asignaturas as
Where a.dni=n.dni
And as.codigo=n.codigo
And n.eval=&evaluación
And n.nombre=&alumno
Order by a.dni


Ya me diras si esta correcto, o como lo haria tu.

Graciassss
En línea

~~~~~~~~~~~~~~~~
sempus
Dakishimetai no ni...
Colaborador
***
Desconectado Desconectado

Mensajes: 2.326


GJDAM 愛している


Ver Perfil
Re: Corregidme estos ejercicios de sql
« Respuesta #19 en: 23 Abril 2009, 16:46 »

creo que en la parte

Citar
And n.nombre=&alumno

seria And n.dni = &alumno, porque el campo nombre no existe en la tabla notas

asumo que en &alumno iria el codigo del alumno.

por cierto, no me molestas :P para eso es el foro ^^


salu2
En línea

...si la tuviera detendría el tiempo para verla como lo hago en este momento y seria feliz eternamente...
Descarga openSUSE
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con estos ejercicios
Programación C/C++
shibu 0 165 Último mensaje 8 Abril 2012, 03:55
por shibu
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines