Autor Tema: ayuda borrar en SQL (Resuelto)  (Leído 16082 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado kikeuntercio

  • Sv Vampire Team ®
  • The Communiter-
  • ***
  • Mensajes: 1545
  • -] java Adict [-
    • Comunidad Bitcoin de Oriente
Re: ayuda borrar en SQL
« Respuesta #15 : mayo 03, 2007, 07:26:46 pm »
fijence que hemos estado reflexionando aca con los compañeros y llegamos a la conclusion que lo que se pide esta mal ya que como dijo "~" dara error en el caso que se repitan los carros del mismo dueño asi que pensamos dejarlo asi:
Código: [Seleccionar]
DELETE FROM coche
WHERE coche.matricula IN (SELECT posee.matricula FROM posee INNER JOIN conductor ON posee.numero_carnet = conductor.numero_carnet WHERE conductor.nombre='Martin Gomez') AND coche.matricula = 'numero_matricula'

Gracias a todos por su colaboracion y alli les deje su respectivo +K
Miembro y co-fundador original de VampireTeam
Bitcoiner
CopyMaster en Finandy.com como: WillockSV

Desconectado Tio B

  • -^- Elite Gold -^-
  • The Communiter-
  • **
  • Mensajes: 10221
  • Vendo nanosuit barato, poco uso
Re: ayuda borrar en SQL
« Respuesta #16 : mayo 03, 2007, 07:32:24 pm »
esta facil, tenes que relacionar las tablas de esta manera:
Citar
C.- Borrar el Mazda de "Martin Gomez"

Los datos de la base es la siguiente:
Conductor(numero_carnet,nombre,direccion) *
Coche(matricula,modelo,año)
Accidente(numero_parte,fecha,lugar)
posee(numero_carnet,matricula) *
Participo(numero_carnet,coche,numero_parte,importe_daños)

CADA conjunto es una tabla, y su interior son los campos que existen en dicha tabla
asi que tenes que relacionar la tabla conductores con coche

COMO SOLO ES UN REGISTRO:

delete from
   conductor as con,
   posee as pos,
   coche as coc,
   participo as par

where
   con.nombre = "Martin Gomez"
   and par.coche = "Mazda"
   and con.numero_carnet = pos.numero_carnet
   and coc.matricula = pos.matricula
   and par.numero_carnet = con.numero_carnet
   and par.numero_carnet = pos.numero_carnet
« Última Modificación: mayo 03, 2007, 07:34:27 pm por Borth »

Desconectado kikeuntercio

  • Sv Vampire Team ®
  • The Communiter-
  • ***
  • Mensajes: 1545
  • -] java Adict [-
    • Comunidad Bitcoin de Oriente
Re: ayuda borrar en SQL (Resuelto)
« Respuesta #17 : mayo 03, 2007, 08:09:50 pm »
borth probe con tu codigo pero al parecer no se puede hacer eso en el SQL server pero como dije antes lo dejaremos de la forma especificada en mi post anterior ya que creemos es lo mas cercano a lo correcto.

Gracias a todos por su colaboracion y esten pendientes que seguro tendre mas dudas ya que vi que los otros ejercicios estan medio yucas tambien :-/
asi que espero me puedan hechar la manito tambien XD
Miembro y co-fundador original de VampireTeam
Bitcoiner
CopyMaster en Finandy.com como: WillockSV

Desconectado tekun

  • -^- Elite Silver -^-
  • The Communiter-
  • *
  • Mensajes: 3221
  • Han convertido mi casa en cueva de mercaderes!!!!
    • www.tekun.es
Re: ayuda borrar en SQL (Resuelto)
« Respuesta #18 : mayo 03, 2007, 08:16:14 pm »
borth probe con tu codigo pero al parecer no se puede hacer eso en el SQL server

claro que se puede mi amigo :)



y muchas mas. lo que yo considero es que tu base de datos ta algo rara!!!, pero en fin.
lo difícil lo hago rápido, con lo imposible, casi siempre me tardo un poquito

Desconectado kikeuntercio

  • Sv Vampire Team ®
  • The Communiter-
  • ***
  • Mensajes: 1545
  • -] java Adict [-
    • Comunidad Bitcoin de Oriente
Re: ayuda borrar en SQL (Resuelto)
« Respuesta #19 : mayo 03, 2007, 08:30:11 pm »
claro que se puede mi amigo :)

y muchas mas. lo que yo considero es que tu base de datos ta algo rara!!!, pero en fin.

yo tambien sigo diciendo que la base esta rara pero ni modo asi esta en el folleto :-/
pero con lo del codigo de borth me da error:

Miembro y co-fundador original de VampireTeam
Bitcoiner
CopyMaster en Finandy.com como: WillockSV

Desconectado tekun

  • -^- Elite Silver -^-
  • The Communiter-
  • *
  • Mensajes: 3221
  • Han convertido mi casa en cueva de mercaderes!!!!
    • www.tekun.es
Re: ayuda borrar en SQL (Resuelto)
« Respuesta #20 : mayo 03, 2007, 08:38:00 pm »
tenes toda la razon.... no habia leido el script bien jajajaja

lo que pasa es que cuando ocupas el alias en las bases y vas a eliminar, lo que tenes que hacer es poner el alias luego de delete from

delete a
from coche
where exists(
select * from posee
where a.matricula=matricula
and modelo='Mazda')


aunque no luego comprender que tablas tienen mas info de lo que queres eliminar
lo difícil lo hago rápido, con lo imposible, casi siempre me tardo un poquito

Desconectado kikeuntercio

  • Sv Vampire Team ®
  • The Communiter-
  • ***
  • Mensajes: 1545
  • -] java Adict [-
    • Comunidad Bitcoin de Oriente
Re: ayuda borrar en SQL (Resuelto)
« Respuesta #21 : mayo 04, 2007, 01:55:53 am »
bueno aca les traigo otro que por mas que intente no le capto tambien...

datos de la base:
empleado(nombre_empleado,calle,ciudad)
trabaja(nombre_empleado,nombre_empresa,sueldo)
empresa(nombre_empresa,ciudad)
jefe(nombre_empleado,nombre_jefe)

g.) Determine las empresas cuyos empleados ganan un sueldo mas alto en media que el sueldo medio del "banco importante".
Miembro y co-fundador original de VampireTeam
Bitcoiner
CopyMaster en Finandy.com como: WillockSV

Desconectado °o.O[ F®ªnk ]O.o°

  • -^- Elite Gold -^-
  • The Communiter-
  • **
  • Mensajes: 2171
Re: ayuda borrar en SQL (Resuelto)
« Respuesta #22 : mayo 04, 2007, 07:46:45 am »
Para esa última se me ocurre algo como lo siguiente:

Citar
SELECT empresa.nombre_empresa
FROM empresa INNER JOIN trabaja ON
   empresa.nombre_empresa = trabaja.nombre_empresa
WHERE
   AVG(trabaja.sueldo) > (SELECT AVG(trabaja_1.sueldo)
            FROM trabaja trabaja_1
            WHERE trabaja_1.nombre_empresa='banco importante')
GROUP BY empresa.nombre_empresa

Si no te funciona avisame porque ahorita las estoy haciendo sin probarlas y es muy pero muy probable que te fallen  :rofl:

NO FUMEN!!!, es por su bien
LORD KARLITOZ, TE EXTRAÑAREMOS

Desconectado tekun

  • -^- Elite Silver -^-
  • The Communiter-
  • *
  • Mensajes: 3221
  • Han convertido mi casa en cueva de mercaderes!!!!
    • www.tekun.es
Re: ayuda borrar en SQL (Resuelto)
« Respuesta #23 : mayo 04, 2007, 08:12:25 am »
para la pregunta g te debe funcionar lo que dice frank

con la otra pregunta la f (la empresa que tiene mayor # empleados)

select nombre_empresa empresa, count(*) n_empleados
from trabaja
group by nombre_empresa

con ese script va a salir algo como esto:

empresa          n_empleados
lips                 5
evolution         4
gatitas            20


es facil saber que empresa tiene mas.....
lo difícil lo hago rápido, con lo imposible, casi siempre me tardo un poquito

Desconectado kikeuntercio

  • Sv Vampire Team ®
  • The Communiter-
  • ***
  • Mensajes: 1545
  • -] java Adict [-
    • Comunidad Bitcoin de Oriente
Re: ayuda borrar en SQL (Resuelto)
« Respuesta #24 : mayo 04, 2007, 09:13:36 am »
tekun asi lo hice el f y me rurulo bien claro lo ordene de mayor a menor para que se viera mejor =D

pero con lo del literal g.) alli si que no me furula por el momento :-/ me da error el codigo de frank
Miembro y co-fundador original de VampireTeam
Bitcoiner
CopyMaster en Finandy.com como: WillockSV

Desconectado °o.O[ F®ªnk ]O.o°

  • -^- Elite Gold -^-
  • The Communiter-
  • **
  • Mensajes: 2171
Re: ayuda borrar en SQL (Resuelto)
« Respuesta #25 : mayo 04, 2007, 09:20:23 am »
tekun asi lo hice el f y me rurulo bien claro lo ordene de mayor a menor para que se viera mejor =D

pero con lo del literal g.) alli si que no me furula por el momento :-/ me da error el codigo de frank

Como te dije, lo mas probable es que te fallara, pero nos ayudarías a ayudarte si nos ponés el mensaje de error que te lanza.

NO FUMEN!!!, es por su bien
LORD KARLITOZ, TE EXTRAÑAREMOS

Desconectado kikeuntercio

  • Sv Vampire Team ®
  • The Communiter-
  • ***
  • Mensajes: 1545
  • -] java Adict [-
    • Comunidad Bitcoin de Oriente
Re: ayuda borrar en SQL (Resuelto)
« Respuesta #26 : mayo 04, 2007, 09:42:31 am »
ese es el errror que tira:
Citar
Servidor: mensaje 147, nivel 15, estado 1, línea 5
No puede aparecer un agregado en la cláusula WHERE si no es en una subconsulta contenida en una cláusula HAVING o en una lista de selección, y siempre que la columna agregada sea una referencia externa.
Servidor: mensaje 156, nivel 15, estado 1, línea 8
Sintaxis incorrecta cerca de la palabra clave 'GROUP'.
Miembro y co-fundador original de VampireTeam
Bitcoiner
CopyMaster en Finandy.com como: WillockSV

Desconectado tekun

  • -^- Elite Silver -^-
  • The Communiter-
  • *
  • Mensajes: 3221
  • Han convertido mi casa en cueva de mercaderes!!!!
    • www.tekun.es
Re: ayuda borrar en SQL (Resuelto)
« Respuesta #27 : mayo 04, 2007, 10:15:43 am »
al parecer no permite sql los subquerys con medias, por que.... nose,
Pero como "a falta de Pan buenas son galletas" mira si te sirve esto

Citar
drop table tmp  -- esto pa' estar seguro que la tabla no existe

-- crea una temporal de las empresas con su media de sueldos
select nombre_empresa
,avg(sueldo) media
into tmp
from trabaja
group by nombre_empresa

-- lista la empresa que su media sea mayor que la media del banco mas importante
select nombre_empresa from tmp
where media>(select avg(sueldo) from trabaja
      where nombre_empresa='banco importante)
group by nombre_empresa
lo difícil lo hago rápido, con lo imposible, casi siempre me tardo un poquito

Desconectado kikeuntercio

  • Sv Vampire Team ®
  • The Communiter-
  • ***
  • Mensajes: 1545
  • -] java Adict [-
    • Comunidad Bitcoin de Oriente
Re: ayuda borrar en SQL (Resuelto)
« Respuesta #28 : mayo 04, 2007, 10:19:37 am »
lo probare de camino a la U vemox mara que me toca entrar a las 11:00

gracias tekun
Miembro y co-fundador original de VampireTeam
Bitcoiner
CopyMaster en Finandy.com como: WillockSV

Desconectado °o.O[ F®ªnk ]O.o°

  • -^- Elite Gold -^-
  • The Communiter-
  • **
  • Mensajes: 2171
Re: ayuda borrar en SQL (Resuelto)
« Respuesta #29 : mayo 04, 2007, 10:29:45 am »
Si no te funciona en el where ponelo en el having así:

Citar
SELECT empresa.nombre_empresa
FROM empresa INNER JOIN trabaja ON
   empresa.nombre_empresa = trabaja.nombre_empresa
GROUP BY empresa.nombre_empresa
HAVING    AVG(trabaja.sueldo) > (SELECT AVG(trabaja_1.sueldo)
            FROM trabaja trabaja_1
            WHERE trabaja_1.nombre_empresa='banco importante')

NO FUMEN!!!, es por su bien
LORD KARLITOZ, TE EXTRAÑAREMOS