elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


  Mostrar Mensajes
Páginas: [1] 2
1  Programación / Bases de Datos / Re: Consulta en Mysql en: 5 Abril 2012, 14:16 pm
Madre mía. ¿He dicho que parecía facilita? lo retiro xD

La he sacado y todavía como que no termino de asimilar del todo.

La solución es ésta:

SELECT CODPROD, DESCRIPCION, MAX(PVP) AS PRECIOMAX
FROM PRODUCTOS
WHERE CODPROD IN(SELECT CODPROD FROM PRODUCTOS
WHERE PVP IN (SELECT MAX(PVP) FROM PRODUCTOS
GROUP BY DESCRIPCION)
)
GROUP BY DESCRIPCION
;
2  Programación / Bases de Datos / Re: Consulta en Mysql en: 5 Abril 2012, 13:37 pm
Ese el el problema, que coge los 4 primeros codprod y no los que tiene que coger. Pero las descripciones no las puedo cambiar porque está puesto así a mala leche digamos xD.

Un saludo Runex y gracias!!
3  Programación / Bases de Datos / Re: Consulta en Mysql en: 5 Abril 2012, 13:08 pm
Nop, porque el precio máximo de un producto sólo es uno. Tengo que coger los productos de mayor precio por tipo (descripcion). Si lo hago así me sale:

4  Programación / Bases de Datos / Consulta en Mysql [solucionado] en: 5 Abril 2012, 12:52 pm
Vuelvo con mi particular batalla con mysql xD

Esta vez parece facilita y sólo hay que coger datos de una tabla pero no me sale.
La tabla es esta:


Hay que obtener los precios máximos por tipo de producto (descripción) con los siguientes datos: codprod, descripcion, preciomax

Yo he hecho esto:

SELECT CODPROD, DESCRIPCION, MAX(PVP) AS PRECIOMAX
FROM PRODUCTOS
GROUP BY DESCRIPCION
;

Y me da como resultado:



Los codprod no me coinciden. Me tendría que salir algo como:



5  Programación / Bases de Datos / Re: Problema con subconsultas en mysql en: 1 Abril 2012, 01:52 am
Al final lo he podido hacer con subconsultas. Lo dejo aquí solucionado:

SELECT PEDIDOS.NUMPED, FECHAP, PROVEEDORES.CODPROV, NOMBRE,
SUM(PRECIO*CTD) AS IMPORTEMAX
FROM PEDIDOS, PROVEEDORES, REMESAS, PIEZAS
WHERE PEDIDOS.NUMPED=REMESAS.NUMPED
AND PIEZAS.CODPIEZA=REMESAS.CODPIEZA
AND PROVEEDORES.CODPROV=PEDIDOS.CODPROV
GROUP BY NUMPED
HAVING IMPORTEMAX >= ALL(
    SELECT SUM(PRECIO*CTD)
    FROM PIEZAS, REMESAS
    WHERE PIEZAS.CODPIEZA=REMESAS.CODPIEZA
    GROUP BY NUMPED
                    )
;

6  Programación / Bases de Datos / Re: Problema con subconsultas en mysql en: 1 Abril 2012, 00:57 am
Está curioso lo del limit xD, no lo había usado nunca. Así funciona:

SELECT PEDIDOS.NUMPED, FECHAP, PROVEEDORES.CODPROV, NOMBRE, SUM(CTD*PRECIO) AS IMPORTEMAX
FROM PEDIDOS, PROVEEDORES, REMESAS, PIEZAS
WHERE PROVEEDORES.CODPROV=PEDIDOS.CODPROV
AND PIEZAS.CODPIEZA=REMESAS.CODPIEZA
AND PEDIDOS.NUMPED=REMESAS.NUMPED
GROUP BY NUMPED
ORDER BY IMPORTEMAX DESC
LIMIT 1
;

Lo que pasa es que me va a decir que esto es trampa  :xD porque son ejercicios de subconsultas. Pero está muy bien pensado.

Muchas gracias!!!
7  Programación / Bases de Datos / Problema con subconsultas en mysql [solucionado] en: 31 Marzo 2012, 20:13 pm
A ver si alguien me puede ayudar porque me estoy volviendo loco xD. Pongo primero las tablas:
Tabla proveedores:



Tabla pedidos:



Tabla piezas:



Tabla remesas:





Ejercicio: obtener el codigo pedido(NUMPED), fecha de pedido (FECHAP), codigo del proveedor(CODPROV), nombre del proveedor(NOMBRE) e importe de pedido de mayor valor.

Bien, el importe de pedido es un campo calculado. Es el sumatorio de las cantidades (campo CTD en la tabla remesas) pedidas, multiplicadas por el precio de coste de las piezas. Esto lo he podido hacer:

SELECT PEDIDOS.NUMPED, FECHAP, PROVEEDORES.CODPROV, NOMBRE, SUM(CTD*PRECIO) AS IMPORTEMAX
FROM PEDIDOS, PROVEEDORES, REMESAS, PIEZAS
WHERE PROVEEDORES.CODPROV=PEDIDOS.CODPROV
AND PIEZAS.CODPIEZA=REMESAS.CODPIEZA
AND PEDIDOS.NUMPED=REMESAS.NUMPED
GROUP BY NUMPED

;

Y me da esta tabla:



Pero necesito que sólo me aparezca el importe de pedido de mayor valor. Es decir, esta linea:



He intentado hacer:


SELECT PEDIDOS.NUMPED, FECHAP, PROVEEDORES.CODPROV, NOMBRE, SUM(CTD*PRECIO) AS IMPORTEMAX
FROM PEDIDOS, PROVEEDORES, REMESAS, PIEZAS
WHERE PROVEEDORES.CODPROV=PEDIDOS.CODPROV
AND PIEZAS.CODPIEZA=REMESAS.CODPIEZA
AND PEDIDOS.NUMPED=REMESAS.NUMPED
GROUP BY NUMPED
HAVING IMPORTEMAX=(SELECT MAX(IMPORTEMAX))
;

Pero nada, me da un error. Supongo que hay que indicarle en el select del having la tabla donde está IMPORTEMAX pero IMPORTEMAX es un campo calculado. Así que no está en ninguna tabla.

8  Programación / Scripting / Problema con script en bash en: 1 Febrero 2012, 21:44 pm
Hola a todos.

Hemos empezado con linux y el profesor ha puesto este script para montar una partición de windows.

Código
  1. #! /bin/bash
  2. # utilidad para montar una particion de windows ntfs
  3. #1- Punto de montaje
  4. particionwin=/dev/sda2
  5. media=/media
  6. punto=/W7
  7. puntomontaje=$media$punto
  8. export particionwin puntomontaje
  9. # echo $puntomontaje
  10. if [ `id -u` = "0" ]; then
  11. if ! [ -d $puntomontaje ];then
  12. mkdir $puntomontaje;
  13. fi
  14. mount $particionwin $puntomontaje;
  15. else
  16. if ! [ -d $puntomontaje ]; then
  17. sudo "mkdir $puntomontaje;mount $particionwin $puntomontaje"
  18. else
  19. sudo mount $particionwin $puntomontaje;
  20. fi
  21. fi

El script funciona, el problema es que no entiendo los if y el export.
Esto:
Código
  1. if [ `id -u` = "0" ];
Esto:
Código
  1. if ! [ -d $puntomontaje ]
Y esto:
Código
  1. export particionwin puntomontaje

Me suena a chino.

Si hay algún manual en el que se expliquen estas cosas también lo agradecería mucho.

Un saludo.
9  Programación / Java / Re: Ordenar array bidimensional en: 1 Febrero 2012, 20:29 pm
Es que es difícil entender el código de otro. Por lo menos para mí que estoy empezando xD.

Pero tampoco creo que sea muy necesarios estos ejercicios a parte de para coger manejo. Dile a tu profesor que empiece ya con las clases y la interfaz gráfica si ya teneis un buen manejo. Seguir aumentando la dificultad de estos ejercicios con bucles dentro de bucles me parece de locos y no se avanza.
10  Programación / Java / Re: Ordenar array bidimensional en: 1 Febrero 2012, 02:02 am
Código
  1.  
  2. package elhackerordenararraybi;
  3.  
  4.  
  5. public class ElhackerOrdenarArrayBi {
  6.  
  7.  
  8.    public static void main(String[] args) {
  9.        // TODO code application logic here
  10.  
  11.        int numeros[][]= new int [4][4];
  12.        int columna=0;
  13.        int var_fila=0;
  14.        int var_fila2=0;
  15.        int temp=0;
  16.        numeros[0][0]=456;
  17.        numeros[0][1]=24;
  18.        numeros[0][2]=548;
  19.        numeros[0][3]=290;
  20.  
  21.        numeros[1][0]=234;
  22.        numeros[1][1]=861;
  23.        numeros[1][2]=21;
  24.        numeros[1][3]=468;
  25.  
  26.        numeros[2][0]=593;
  27.        numeros[2][1]=245;
  28.        numeros[2][2]=552;
  29.        numeros[2][3]=691;
  30.  
  31.        numeros[3][0]=616;
  32.        numeros[3][1]=154;
  33.        numeros[3][2]=101;
  34.        numeros[3][3]=384;
  35.  
  36.        //imprimimos array sin ordenar
  37.  
  38.        System.out.println("----ARRAY SIN ORDENAR----");
  39.        while(var_fila <4)
  40.        {
  41.         while(columna<4)
  42.             {
  43.                  System.out.print("  "+numeros[columna][var_fila]+"  ");
  44.                  columna++;
  45.              }
  46.                 System.out.println();
  47.                 columna=0;
  48.                 var_fila++;
  49.        }
  50.  
  51.        var_fila=0;
  52.        columna=0;
  53.  
  54.        //ordenamos el array
  55.  
  56.        while(columna<4)
  57.        {
  58.            while(var_fila<3)
  59.  
  60.            {
  61.  
  62.               while(var_fila2<3)
  63.               {
  64.                   if(numeros[columna][var_fila]>numeros[columna][var_fila2+1]&& var_fila2>=var_fila)
  65.                   {
  66.                       temp=numeros[columna][var_fila];
  67.                        numeros[columna][var_fila]=numeros[columna][var_fila2+1];
  68.                        numeros[columna][var_fila2+1]=temp;
  69.  
  70.                   }
  71.                   var_fila2++;
  72.               }
  73.               var_fila2=0;
  74.               var_fila++;
  75.            }
  76.           var_fila2=0;
  77.           var_fila=0;
  78.           columna++;
  79.        }
  80.        columna=0;
  81.        var_fila=0;
  82.  
  83.        //Imprimimos el array
  84.        System.out.println("----IMPRIMIMOS EL ARRAY ORDENADO--------");
  85.        while(var_fila <4){
  86.         while(columna<4){
  87.          System.out.print("  "+numeros[columna][var_fila]+"  ");
  88.          columna++;
  89.         }
  90.         System.out.println();
  91.         columna=0;
  92.         var_fila++;
  93.        }
  94.    }
  95. }
  96.  
:rolleyes: :rolleyes: :rolleyes: :rolleyes:
Páginas: [1] 2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines