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

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

Desconectado kikeuntercio

  • Sv Vampire Team ®
  • Trade Count: (2)
  • The Communiter-
  • ***
  • Thank You
  • -Given: 7
  • -Receive: 6
  • Mensajes: 1551
  • -] java Adict [-
    • Escuela Latinoamericana ELA
ayuda borrar en SQL (Resuelto)
« : mayo 03, 2007, 01:10:45 am »
tengo una tarea a la cual no le capto mucho ya que nose mucho de base de datos relacionales
bueno lo que me piden es lo siguientedice asi:
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)

espero me ayuden con esto ya que como digo en esto de SQL no mucho
« Última Modificación: mayo 03, 2007, 07:31:50 pm por kikeuntercio »

Desconectado *MAURO*

  • Trade Count: (0)
  • Sv Member
  • ***
  • Thank You
  • -Given: 2
  • -Receive: 1
  • Mensajes: 455
  • El Futbol: la unica religión ke no tiene Ateos ッ
Re: ayuda borrar en SQL
« Respuesta #1 : mayo 03, 2007, 02:16:47 am »
q es MS SQL Server ???  MySQL ??? u otro ???

mas o menos te capto proba algo asi como lo siguiente

Citar
DELETE FROM nombredetabla  WHERE conductor='Martin Gomez' AND modelo='mazda'

Desconectado darkela

  • Sv Vampire Team ®
  • Trade Count: (2)
  • The Communiter-
  • ***
  • Thank You
  • -Given: 3
  • -Receive: 0
  • Mensajes: 1634
  • 다르켈라
Re: ayuda borrar en SQL
« Respuesta #2 : mayo 03, 2007, 02:24:45 am »
cabal asi como dice mauro es..

DELETE FROM tabla_name WHERE conductor='Martin Gomez'

Desconectado kikeuntercio

  • Sv Vampire Team ®
  • Trade Count: (2)
  • The Communiter-
  • ***
  • Thank You
  • -Given: 7
  • -Receive: 6
  • Mensajes: 1551
  • -] java Adict [-
    • Escuela Latinoamericana ELA
Re: ayuda borrar en SQL
« Respuesta #3 : mayo 03, 2007, 06:15:04 am »
cabal asi como dice mauro es..

DELETE FROM tabla_name WHERE conductor='Martin Gomez'

pero eso solo me elimiaria el dato de una sola tabla, en este caso el de la tabla conductor.


q es MS SQL Server ???  MySQL ??? u otro ???

mas o menos te capto proba algo asi como lo siguiente
Citar
DELETE FROM nombredetabla  WHERE conductor='Martin Gomez' AND modelo='mazda'
es en SQL Server
y tu respuesta no podria ser ya que no existe una tabla que contenga "conductor" y "modelo"(aunque en mi caso creo que seria "coche" en la tabla "participo") al mismo tiempo

lo que yo creo es que tendria que hacer un eliminar pero en base a DOS consultas previas pero eso es exactamente lo que no puedo hacer :-/ o nose si me equivoco

Desconectado *MAURO*

  • Trade Count: (0)
  • Sv Member
  • ***
  • Thank You
  • -Given: 2
  • -Receive: 1
  • Mensajes: 455
  • El Futbol: la unica religión ke no tiene Ateos ッ
Re: ayuda borrar en SQL
« Respuesta #4 : mayo 03, 2007, 06:49:55 am »
Sacos!!!

Pense q conductor porq decia "...el carro de Martin Gomez"  (osea el nombre de la persona) XD

Es q no te especificaste bien viejo

Bueno pero por hay va la idea :coffee: me voy a descansar un poco :lazy:

estoy frikiado ahorita  :shock:

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

  • -^- Elite Gold -^-
  • Trade Count: (4)
  • The Communiter-
  • **
  • Thank You
  • -Given: 0
  • -Receive: 0
  • Mensajes: 2172
Re: ayuda borrar en SQL
« Respuesta #5 : mayo 03, 2007, 08:01:15 am »
Seria algo así:

Citar
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.modelo = 'Mazda'

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

Desconectado tekun

  • -^- Elite Silver -^-
  • Trade Count: (1)
  • The Communiter-
  • *
  • Thank You
  • -Given: 53
  • -Receive: 101
  • Mensajes: 3193
  • Han convertido mi casa en cueva de mercaderes!!!!
    • www.tekun.es
Re: ayuda borrar en SQL
« Respuesta #6 : mayo 03, 2007, 08:53:03 am »
yo la verda' no entiendo muy bien tu pregunta, y no la entiendo porque las soluciones que te han dado te deberian de funcionar....

con lo de bases relacionales, me imagino que tu problema es que la informacion esta amarrada en todas las tablas, por lo que debes de eliminar primero la informacion en la tabla hija y luego para arriba.

viendo las tablas que has puesto

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)

dejando de lado que la base de datos esta algo pateadita(se que es por tratarse de un deber, pero tenia que decirlo), debes de averiguarte como estan creadas las relaciones entre las tablas, y asi detectaras quien es primary key table y quien es foreign pa empezar a eliminar las tablas que son foreign.... esto en el enterprise manager




sino pues, haciendo uso de las ayuditas que da sql2000 empeza a eliminar la info en cualquier tabla, sql te dira que

Citar
DELETE statement conflicted with TABLE REFERENCE constraint 'constraint1'. The conflict occurred in database 'Conductores_Chocos', table 'conductor'.
The statement has been terminated.

lo anterior como resultado del script

Citar
delete from conductor where nombre ='Martin Gomez'

claro!!!, se que esto ultimo es un metodo a prueba y error .......pero ¿?¿?¿?
lo difícil lo hago rápido, con lo imposible, casi siempre me tardo un poquito

Desconectado rdoggsv

  • Administrator
  • Trade Count: (3)
  • The Communiter-
  • *
  • Thank You
  • -Given: 301
  • -Receive: 488
  • Mensajes: 6402
  • "Once you go arch , u never go back"
    • SV CommunitY
Re: ayuda borrar en SQL
« Respuesta #7 : mayo 03, 2007, 12:58:35 pm »
Hey frank pero con ese delete borrarias el mazda de el listado de coches pero siempre quedaria como que si el chero posee el carro o no ??, lo borra automaticamente de las 2 ?

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

  • -^- Elite Gold -^-
  • Trade Count: (4)
  • The Communiter-
  • **
  • Thank You
  • -Given: 0
  • -Receive: 0
  • Mensajes: 2172
Re: ayuda borrar en SQL
« Respuesta #8 : mayo 03, 2007, 01:13:55 pm »
Hey frank pero con ese delete borrarias el mazda de el listado de coches pero siempre quedaria como que si el chero posee el carro o no ??, lo borra automaticamente de las 2 ?

Depende de como se hagan las relaciones, si se define como un "on delete cascade" (borrado en cascada) de un sólo se va también la tupla de la pertenencia.

En este caso si no se define así, no te lo borrará :D porque te dará un warning de integridad referencial.

Yo sólo hice la sentencia que pedía el amigo kike, asumiendo que sí hay un borrado en cascada.

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

Desconectado rdoggsv

  • Administrator
  • Trade Count: (3)
  • The Communiter-
  • *
  • Thank You
  • -Given: 301
  • -Receive: 488
  • Mensajes: 6402
  • "Once you go arch , u never go back"
    • SV CommunitY
Re: ayuda borrar en SQL
« Respuesta #9 : mayo 03, 2007, 01:20:28 pm »
Depende de como se hagan las relaciones, si se define como un "on delete cascade" (borrado en cascada) de un sólo se va también la tupla de la pertenencia.

En este caso si no se define así, no te lo borrará :D porque te dará un warning de integridad referencial.

Yo sólo hice la sentencia que pedía el amigo kike, asumiendo que sí hay un borrado en cascada.

Si me imagine que habias tomado en cuenta lo de borrado en cascada, supongo que si queres borrar los 2 manualmente lo haces con un subquery

Desconectado kikeuntercio

  • Sv Vampire Team ®
  • Trade Count: (2)
  • The Communiter-
  • ***
  • Thank You
  • -Given: 7
  • -Receive: 6
  • Mensajes: 1551
  • -] java Adict [-
    • Escuela Latinoamericana ELA
Re: ayuda borrar en SQL
« Respuesta #10 : mayo 03, 2007, 01:54:02 pm »
hey frank mira estaba intentando modificando el codigo que vos distes per aun asi no le allo mucho :-/
quiero solo dejar algo en claro para ver si asi me ayudan mejor.
en la ultima parte del codigo de frank el pone esto:
"AND coche.modelo = 'Mazda'" pero no creo que seria asi, ya que en coche.modelo nosotros hemos puesto por ejemplo "3" y en participo.coche hemos puesto "Mazda" osea que en otras palabras seria:
Marca = participo.coche
Modelo = coche.modelo

bueno aclaro que desde un principio no le encontre mucho sentido a esta base de datos asi como dice tekun y eso que escribi es lo que exactamente pide el ejercicio, ahora el borrado en cascada si esta activado, pero por el momento he probado modificando el codigo que proporciono frank pero no me borra nada :cry:

Desconectado tekun

  • -^- Elite Silver -^-
  • Trade Count: (1)
  • The Communiter-
  • *
  • Thank You
  • -Given: 53
  • -Receive: 101
  • Mensajes: 3193
  • Han convertido mi casa en cueva de mercaderes!!!!
    • www.tekun.es
Re: ayuda borrar en SQL
« Respuesta #11 : mayo 03, 2007, 02:04:13 pm »
y eliminando en tabla por tabla no te funciona....
lo difícil lo hago rápido, con lo imposible, casi siempre me tardo un poquito

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

  • -^- Elite Gold -^-
  • Trade Count: (4)
  • The Communiter-
  • **
  • Thank You
  • -Given: 0
  • -Receive: 0
  • Mensajes: 2172
Re: ayuda borrar en SQL
« Respuesta #12 : mayo 03, 2007, 02:07:26 pm »
hey frank mira estaba intentando modificando el codigo que vos distes per aun asi no le allo mucho :-/
quiero solo dejar algo en claro para ver si asi me ayudan mejor.
en la ultima parte del codigo de frank el pone esto:
"AND coche.modelo = 'Mazda'" pero no creo que seria asi, ya que en coche.modelo nosotros hemos puesto por ejemplo "3" y en participo.coche hemos puesto "Mazda" osea que en otras palabras seria:
Marca = participo.coche
Modelo = coche.modelo

bueno aclaro que desde un principio no le encontre mucho sentido a esta base de datos asi como dice tekun y eso que escribi es lo que exactamente pide el ejercicio, ahora el borrado en cascada si esta activado, pero por el momento he probado modificando el codigo que proporciono frank pero no me borra nada :cry:

Yo siento que te has complicado, hasta donde yo veo la sentencia que yo te puse estaría buena.

Según entiendo la tabla "participo" es cuando el coche ha chocado, pero ahí sólo te dicen que borrés el mazda de Martín Gomez, nada más.

Por qué no ponés la sentencia tal y como la has probado para ver si hay algún error ahí?

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

Desconectado ~

  • Trade Count: (0)
  • The Communiter-
  • *
  • Thank You
  • -Given: 0
  • -Receive: 156
  • Mensajes: 1412
    • Ciencia de Computación, OSes y Herramientas
Re: ayuda borrar en SQL
« Respuesta #13 : mayo 03, 2007, 03:27:00 pm »
Tal vez con un procedimiento que haga algo así:

Código: [Seleccionar]
1- Buscar en Conductor el numero de carnet de "Martin Gomez".
//paso 1:
  SELECT numero_carnet
  INTO   mi_tabla_tmp_carnet
  FROM   Conductor
  WHERE  nombre="Martin Gomez"


2- Buscar en posee todas las matriculas que correspondan al carnet de "Martin Gomez"
   del resultado anterior (en el que buscamos y obtuvimos el carnet de Martin Gomez).
//paso 2:
   SELECT matricula
   INTO   mi_tabla_tmp_matricula
   FROM   posee
   WHERE  mi_tabla_tmp_carnet.numero_carnet = posee.numero_carnet


3- Buscar en Coche todos los 'modelo' s; donde la matricula corresponda a la de "Martin Gomez"
   del paso anterior (en donde obtuvimos matriculas de Martin Gomez), y que el modelo sea Mazda.
//paso 3:
   SELECT Modelo
   INTO   mi_tabla_tmp_modelo_carro
   FROM   Coche
   WHERE  Coche.modelo = "Mazda"
   AND    mi_tabla_tmp_matricula.matricula = Coche.matricula


4- Buscar en Participo todos los registros de 'numero_parte' donde el numero de carnet
   sea el de "Martin Gomez".
//paso 4:
   SELECT numero_parte
   INTO   mi_tabla_tmp_numero_parte
   FROM   Participo
   WHERE  mi_tabla_tmp_carnet.numero_carnet = Participo.numero_carnet


5- Eliminar de la tabla Accidente todos los registros donde aparece el 'numero_parte' del
   resultado anterior (en el que buscamos todos los numeros de parte correspondientes al
   carnet de Martin Gomez).
//paso 5:
   DELETE FROM Accidente
   WHERE  mi_tabla_tmp_numero_parte.numero_parte = Participo.numero_parte


6- Eliminar de la tabla Participo todos los registros de 'numero_parte' donde el numero de
   carnet sea el de "Martin Gomez".
//paso 6:
   DELETE FROM Participo
   WHERE  mi_tabla_tmp_carnet.numero_carnet = Participo.numero_carnet


7- Eliminar de posee todos los registros donde el modelo sea "Mazda" y la matricula sea
   la de "Martin Gomez".
//paso 7:
   DELETE FROM posee
   WHERE  mi_tabla_tmp_matricula.matricula = posee.matricula


8- Eliminar de Coche todos los registros donde el 'modelo' sea "Mazda" y la matrícula sea
   la de "Martin Gomez".
//paso 8:
   DELETE FROM Coche
   WHERE  Coche.modelo    = "Mazda"
   AND    Coche.matricula = mi_tabla_tmp_matricula.matricula


Y asumiendo que el campo "coche" en participo en realidad es la matrícula:

Código: [Seleccionar]
1- Buscar en Conductor el numero de carnet de "Martin Gomez".
//paso 1:
  SELECT numero_carnet
  INTO   mi_tabla_tmp_carnet
  FROM   Conductor
  WHERE  nombre="Martin Gomez"


2- Buscar en posee todas las matriculas que correspondan al carnet de "Martin Gomez"
   del resultado anterior (en el que buscamos y obtuvimos el carnet de Martin Gomez).
//paso 2:
   SELECT matricula
   INTO   mi_tabla_tmp_matricula
   FROM   posee
   WHERE  mi_tabla_tmp_carnet.numero_carnet = posee.numero_carnet


3- Buscar en Coche todos los 'modelo' s; donde la matricula corresponda a la de "Martin Gomez"
   del paso anterior (en donde obtuvimos matriculas de Martin Gomez), y que el modelo sea Mazda.
//paso 3:
   SELECT Modelo
   INTO   mi_tabla_tmp_modelo_carro
   FROM   Coche
   WHERE  Coche.modelo = "Mazda"
   AND    mi_tabla_tmp_matricula.matricula = Coche.matricula


4- Buscar en Participo todos los registros de 'numero_parte' donde el numero de carnet
   sea el de "Martin Gomez".
//paso 4:
   SELECT numero_parte
   INTO   mi_tabla_tmp_numero_parte
   FROM   Participo
   WHERE  mi_tabla_tmp_carnet.numero_carnet = Participo.numero_carnet
   AND    Participo.coche = mi_tabla_tmp_matricula.matricula


5- Eliminar de la tabla Accidente todos los registros donde aparece el 'numero_parte' del
   resultado anterior (en el que buscamos todos los numeros de parte correspondientes al
   carnet de Martin Gomez).
//paso 5:
   DELETE FROM Accidente
   WHERE  mi_tabla_tmp_numero_parte.numero_parte = Participo.numero_parte


6- Eliminar de la tabla Participo todos los registros de 'numero_parte' donde el numero de
   carnet sea el de "Martin Gomez".
//paso 6:
   DELETE FROM Participo
   WHERE  mi_tabla_tmp_carnet.numero_carnet = Participo.numero_carnet
   AND    Participo.coche = mi_tabla_tmp_matricula.matricula


7- Eliminar de posee todos los registros donde el modelo sea "Mazda" y la matricula sea
   la de "Martin Gomez".
//paso 7:
   DELETE FROM posee
   WHERE  mi_tabla_tmp_matricula.matricula = posee.matricula


8- Eliminar de Coche todos los registros donde el 'modelo' sea "Mazda" y la matrícula sea
   la de "Martin Gomez".
//paso 8:
   DELETE FROM Coche
   WHERE  Coche.modelo    = "Mazda"
   AND    Coche.matricula = mi_tabla_tmp_matricula.matricula


Los pasos del 5 al 8 pueden necesitar otro orden. Esto solo es una explicación de cómo
podría hacerse. Lo más seguro es que esto no funcione pero por lo menos puede que sirva
para aclarar cómo podría estar estructurada la base de datos exactamente.

También es posible que esta forma de hacer las cosas falle en el paso 8 si Martin Gomez tiene
más de un Mazda.
« Última Modificación: mayo 03, 2007, 05:13:43 pm por ~ »
Mi sitio web:
---- IP para archivo hosts (todos mis subdominios):
190.150.9.244 archefire.org

Desconectado kikeuntercio

  • Sv Vampire Team ®
  • Trade Count: (2)
  • The Communiter-
  • ***
  • Thank You
  • -Given: 7
  • -Receive: 6
  • Mensajes: 1551
  • -] java Adict [-
    • Escuela Latinoamericana ELA
Re: ayuda borrar en SQL
« Respuesta #14 : mayo 03, 2007, 06:27:08 pm »
Frank con el codigo que me distes exactamente no me funciona como te digo en coche.modelo almacenasmos por ejemplo: de un "toyota 1600" alli almacenamos "1600" y en participo.coche almacenamos la marca osea "toyota"

pero poniendo "AND coche.modelo = '3'" asumiendo que el "3" es el modelo del Mazda entonces si me elimina de la tabla coche.
y yo probe modifiando el "AND participo.coche = 'Mazda'" pero me da un error que dice:
"el prefijo de la columna 'participo' no coincide con un nombre de tabla o con un alias usando en la consulta"

ahora con lo que dice ~ no he probado aun primero ire a cenar y luego vere si pruebo el codigo que dejastes.

de antemano les dire que todos aca ya se ganaron su respectivo +K

Desconectado tekun

  • -^- Elite Silver -^-
  • Trade Count: (1)
  • The Communiter-
  • *
  • Thank You
  • -Given: 53
  • -Receive: 101
  • Mensajes: 3193
  • Han convertido mi casa en cueva de mercaderes!!!!
    • www.tekun.es
Re: ayuda borrar en SQL
« Respuesta #15 : mayo 03, 2007, 06:56:59 pm »
pero poniendo "AND coche.modelo = '3'" asumiendo que el "3" es el modelo del Mazda entonces si me elimina de la tabla coche.
y yo probe modifiando el "AND participo.coche = 'Mazda'" pero me da un error que dice:
"el prefijo de la columna 'participo' no coincide con un nombre de tabla o con un alias usando en la consulta"

si esa modificacion la hiciste en el script que te puso frank, tal cual, no te funciona porque no has puesto la tabla 'participo' en el query principal....

pone como te dijo frank el script que ejecutas pa' estar hablando el mismo idioma
lo difícil lo hago rápido, con lo imposible, casi siempre me tardo un poquito

Desconectado kikeuntercio

  • Sv Vampire Team ®
  • Trade Count: (2)
  • The Communiter-
  • ***
  • Thank You
  • -Given: 7
  • -Receive: 6
  • Mensajes: 1551
  • -] java Adict [-
    • Escuela Latinoamericana ELA
Re: ayuda borrar en SQL
« Respuesta #16 : 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

Desconectado Tio B

  • -^- Elite Gold -^-
  • Trade Count: (5)
  • The Communiter-
  • **
  • Thank You
  • -Given: 123
  • -Receive: 76
  • Mensajes: 10251
  • Vendo nanosuit barato, poco uso
Re: ayuda borrar en SQL
« Respuesta #17 : 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 ®
  • Trade Count: (2)
  • The Communiter-
  • ***
  • Thank You
  • -Given: 7
  • -Receive: 6
  • Mensajes: 1551
  • -] java Adict [-
    • Escuela Latinoamericana ELA
Re: ayuda borrar en SQL (Resuelto)
« Respuesta #18 : 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

Desconectado tekun

  • -^- Elite Silver -^-
  • Trade Count: (1)
  • The Communiter-
  • *
  • Thank You
  • -Given: 53
  • -Receive: 101
  • Mensajes: 3193
  • Han convertido mi casa en cueva de mercaderes!!!!
    • www.tekun.es
Re: ayuda borrar en SQL (Resuelto)
« Respuesta #19 : 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 ®
  • Trade Count: (2)
  • The Communiter-
  • ***
  • Thank You
  • -Given: 7
  • -Receive: 6
  • Mensajes: 1551
  • -] java Adict [-
    • Escuela Latinoamericana ELA
Re: ayuda borrar en SQL (Resuelto)
« Respuesta #20 : 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:


Desconectado tekun

  • -^- Elite Silver -^-
  • Trade Count: (1)
  • The Communiter-
  • *
  • Thank You
  • -Given: 53
  • -Receive: 101
  • Mensajes: 3193
  • Han convertido mi casa en cueva de mercaderes!!!!
    • www.tekun.es
Re: ayuda borrar en SQL (Resuelto)
« Respuesta #21 : 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 ®
  • Trade Count: (2)
  • The Communiter-
  • ***
  • Thank You
  • -Given: 7
  • -Receive: 6
  • Mensajes: 1551
  • -] java Adict [-
    • Escuela Latinoamericana ELA
Re: ayuda borrar en SQL (Resuelto)
« Respuesta #22 : 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".

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

  • -^- Elite Gold -^-
  • Trade Count: (4)
  • The Communiter-
  • **
  • Thank You
  • -Given: 0
  • -Receive: 0
  • Mensajes: 2172
Re: ayuda borrar en SQL (Resuelto)
« Respuesta #23 : 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 -^-
  • Trade Count: (1)
  • The Communiter-
  • *
  • Thank You
  • -Given: 53
  • -Receive: 101
  • Mensajes: 3193
  • Han convertido mi casa en cueva de mercaderes!!!!
    • www.tekun.es
Re: ayuda borrar en SQL (Resuelto)
« Respuesta #24 : 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 ®
  • Trade Count: (2)
  • The Communiter-
  • ***
  • Thank You
  • -Given: 7
  • -Receive: 6
  • Mensajes: 1551
  • -] java Adict [-
    • Escuela Latinoamericana ELA
Re: ayuda borrar en SQL (Resuelto)
« Respuesta #25 : 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

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

  • -^- Elite Gold -^-
  • Trade Count: (4)
  • The Communiter-
  • **
  • Thank You
  • -Given: 0
  • -Receive: 0
  • Mensajes: 2172
Re: ayuda borrar en SQL (Resuelto)
« Respuesta #26 : 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 ®
  • Trade Count: (2)
  • The Communiter-
  • ***
  • Thank You
  • -Given: 7
  • -Receive: 6
  • Mensajes: 1551
  • -] java Adict [-
    • Escuela Latinoamericana ELA
Re: ayuda borrar en SQL (Resuelto)
« Respuesta #27 : 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'.

Desconectado tekun

  • -^- Elite Silver -^-
  • Trade Count: (1)
  • The Communiter-
  • *
  • Thank You
  • -Given: 53
  • -Receive: 101
  • Mensajes: 3193
  • Han convertido mi casa en cueva de mercaderes!!!!
    • www.tekun.es
Re: ayuda borrar en SQL (Resuelto)
« Respuesta #28 : 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 ®
  • Trade Count: (2)
  • The Communiter-
  • ***
  • Thank You
  • -Given: 7
  • -Receive: 6
  • Mensajes: 1551
  • -] java Adict [-
    • Escuela Latinoamericana ELA
Re: ayuda borrar en SQL (Resuelto)
« Respuesta #29 : 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

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

  • -^- Elite Gold -^-
  • Trade Count: (4)
  • The Communiter-
  • **
  • Thank You
  • -Given: 0
  • -Receive: 0
  • Mensajes: 2172
Re: ayuda borrar en SQL (Resuelto)
« Respuesta #30 : 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