Jump to content

[ayuda]sql base de datos


Recommended Posts

el problema es el siguiente tengo esto

 

MUSIC_TYPE_ID COMPACT_DISC_ID CD_TITLE STOCK

---------------------- ---------------------- ------------------------------------------------------------ ----------------------

11 102 Blue 42

11 112 Fundamental 34

11 114 Blues on the Bayou 27

13 102 Blue 42

13 112 Fundamental 34

13 107 Patsy Cline: 12 Greatest Hits 32

13 108 Carreras Domingo Pavarotti in Concert 27

13 103 Court and Spark 22

13 113 Bob Seger and the Silver Bullet Band Greatest Hits 16

13 101 Famous Blue Raincoat 13

13 111 Leonard Cohen The Best Of 12

14 113 Bob Seger and the Silver Bullet Band Greatest Hits 16

15 108 Carreras Domingo Pavarotti in Concert 27

15 109 After the Rain: The Soft Sounds of Erik Satie 21

16 104 Past Light 17

16 105 Kojiki 6

17 107 Patsy Cline: 12 Greatest Hits 32

18 102 Blue 42

18 103 Court and Spark 22

18 101 Famous Blue Raincoat 13

18 111 Leonard Cohen The Best Of 12

20 110 Out of Africa 29

20 115 Orlando 5

21 106 That Christmas Feeling 8

 

 

 

el problema que tengo es que tengo el siguiente codigo el cual me da la tabla que tuve anteriormente lo que necesito que haga es que me muestre solamente los que tienen mayor stock por tipo(music_type_id)

 

 

select d.music_type_id ,e.compact_disc_id,cd_title,e.in_stock stock

from compact_discs e,compact_disc_types d

where e.compact_disc_id= d.compact_disc_id

order by d.music_type_id,e.in_stock desc

 

 

 

eso es lo que tengo de antemano gracias por la respuesta saludos

Link to comment
Share on other sites

Select * From tabla Group By music_type_id Where Stock=(Select Max(Stock) From tabla)

 

Algo asi??....no tengo como ver si esta correcto....hubieras puesto el detalle de tus tablas, pues, por tu consulta se diria que tienes 2 tablas....pero adapta esta consulta y ve si te resulta.

 

 

Saludos :tontotv:

Link to comment
Share on other sites

es que son varias tablas que tiene la base de dato pero siguiendo esos datos lo que tengo que obtener son los que tienen mas stock dentro de cada grupo de music_type_id

revisare si me funciona lo que pusiste anterior

 

 

 

PD: lo intente pero no resulto bueno en parte si el problema es que si lo hago asi salen que todas las canciones son del mismo tipo de musica y con el mismo stcok

 

esas son las dos tablas que trato de combinar y tengo que obtener el titulo que tenga mas stock de cada tipo de musica

COMPACT_DISC_ID MUSIC_TYPE_ID

---------------------- ----------------------

101........................................ 13

101........................................ 18

102....................................... 11

102...................................... 13

102...................................... 18

103 ..................................... 13

103 .................................... 18

104 .................................... 16

105...................................... 16

106...................................... 21

107 .................................... 13

107................................... 17

108........................................ 13

108....................................... 15

109 .................................. 15

110................................... 20

111..................................... 13

111...................................... 18

112..................................... 11

112...................................... 13

113...................................... 13

113...................................... 14

114....................................... 11

115........................................ 20

 

 

COMPACT_DISC_ID CD_TITLE ...............................................IN_STOCK

---------------------- ------------------------------------------------------------ ----------------------

101 Famous Blue Raincoat......13

102 Blue.....................42

103 Court and Spark...........22

104 Past Light................17

105 Kojiki ....................6

106 That Christmas Feeling......8

107 Patsy Cline: 12 Greatest Hits..32

108 Carreras Domingo Pavarotti in Concert..27

109 After the Rain: The Soft Sounds of Erik Satie ..21

110 Out of Africa...............29

111 Leonard Cohen The Best Of ...12

112 Fundamental ..................34

113 Bob Seger and the Silver Bullet Band Greatest Hits..16

114 Blues on the Bayou ..............27

115 Orlando...........................5

 

 

alguna idea??

Edited by r_kstro
Link to comment
Share on other sites

Por favor el bambino, no doble postaer.

 

Mira hice esta consulta:


SELECT q.COMPACT_DISC_ID, q.CD_TITLE, q.IN_STOCK, max(q.IN_STOCK), q.MUSIC_TYPE_ID
FROM (SELECT s.COMPACT_DISC_ID, s.CD_TITLE, s.IN_STOCK, t.MUSIC_TYPE_ID FROM discostock AS s, disctipo AS t
WHERE s.COMPACT_DISC_ID = t.COMPACT_DISC_ID) AS q
GROUP BY q.MUSIC_TYPE_ID

 

Me di la lata de pasar las tablas a mysql y empezar a jugar un poco... y a estas alturas de la noche llegue a eso, es lo mejor que he podido llegar ahora. Da casi bien, salvo dondel el disco 102 tiene mayor stock, pero no lo muestra a el...

Edited by r_kstro
Link to comment
Share on other sites

  • 3 weeks later...

primero que nada estas uniendo mal las tablas ya que falta la sentencia "inner join"

 

Luego de que hayas realizado la union de las tablas con esta sentecia aplica un

"where" a la categoria o tipo de "elemento" (en este caso tipo de musica)

y si quieres saber el stock mas grande orderna la consulta descendentemente

"desc" para que te aparezca el mayo valor o stock inmediatamente...ej

 

select * from musica

where id_tipomusica="Rock"

order by unidades_stock desc

 

-->si lo tienes con codigos coloca el codigo...

 

select * from musica

where id_tipomusica=97

order by unidades_stock desc

 

si no puedes realizarlo aun....

enviame un mensaje por mp

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...