SQL - Duda Novata

   
Vista:

Duda Novata

Publicado por Esperanza (9 intervenciones) el 25/09/2012 19:39:28
Hola a todos, tengo un problema, soy novata y estoy tratando de aprender sql y me gustaria empezar con una consulta sencilla pero no se que me fallo, tengo los siguientes datos :

Tabla.- ItemNumbers
Campo1.- ItemCode
Campo2.- ItemDescription

necesito desplegar estos datos sin ninguna condicion y utilize este codigo pero no me genera nada :

SELECT ItemCode, ItemDescription
FROM ItemNumbers
GROUP BY ItemCode



gracias de antemano por su ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Duda Novata

Publicado por leonardo_josue (877 intervenciones) el 25/09/2012 20:11:09
Hola Esperanza... veo que es tu primer intervención en el foro, así es que algunas recomendaciones para que las tomes en cuenta en lo subsecuente...

1. Menciona siempre con que BD estás trabajando. Este foro es sobre SQL, que es el lenguaje de consultas que utilizan la mayoría de los DBMS, pero aunque la sintaxis es semejante en todos ellos, existen diferencias importantes que debemos considerar...

2. Si la consulta te regresa algún error debes incluir el código del error y la descripción del mismo, así será más fácil tratar de ayudarte...

3. Siempre pregunta antes a SAN GOOGLE, el tiene muchas respuestas y es posible que puedas encontrarla sin necesidad de acudir al foro.

Ahora si, pasando a tu pregunta, en realidad la cláusula GROUP BY está de más, pues la verdadera utilidad de esta radica cuando la utilizas con FUNCIONES DE AGRUPACIÓN (COUNT, MIN, MAX, AVG, etc). En tu caso, como no tienes ninguna de estas funciones en el SELECT entonces no tiene caso colocarla...

Haz la prueba y nos comentas los resultados

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duda Novata

Publicado por Esperanza mjimenezh@outlook.com (9 intervenciones) el 25/09/2012 20:42:57
Hola Leonardo, tenias razon, en cuanto quite esa instruccion todo funciono, incluso me puse a experimentar y la cambie por order by y todo salio ok, muchas gracias por tu ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duda Novata

Publicado por leonardo_josue (877 intervenciones) el 25/09/2012 21:29:18
Hola de nuevo Esperanza...

No te quedes con la impresión de que el GROUP BY no sirve para nada, al contrario, es una de las cláusulas que más cosas te permite hacer operaciones en el ambiente de Bases de datos, pero como te dije, la verdadera utilidad la encuentras cuando la utilizas con funciones de agrupación... creo que deberías de tomarte el tiempo para estudiar acerca de estas funciones (COUNT, MIN, MAX, AVG, VAR, etc) para que veas qué puedes hacer y cómo lo puedes aplicar a lo que necesites. Investiga y lee también acerca de la cláusula HAVING, la cual sirve como el WHERE pero para agrupaciones.

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duda Novata

Publicado por Esperanza (9 intervenciones) el 26/09/2012 19:47:54
Gracias por la explicacion, me ha sido de mucha utilidad, ahora mi codigo lo cambie y si me genera la consulta pero me manda duplicados, te explico, mi bd es sql y tengo dos tablas con los siguientes datos :


Tabla1.- Items
Campo1.- ItemCode
Campo2.- ItemDescription

Tabla2.- ItemNumbers
Campo1.- ItemCode
Campo2.- LotNumber

Lo que intento es que me despliegue todos los campos de la tabla1 y que me despliegue el lotnumber de la tabla2 que le corresponda a cada itemcode de la tabla1 pero que cuando existan itemcodes duplicados los agrupe, el problema es que hay itemcodes que pueden tener lotnumbres diferentes no se si me explico, el codigo es este

SELECT A.ItemCode CODIGO, A.Description DESCRIPCION, B.LotNumber LOTE

FROM Items A INNER JOIN ItemNumbers B

ON A.ItemCode=B.ItemCode

ORDER BY B.LotNumber


Gracias...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duda Novata

Publicado por leonardo_josue (877 intervenciones) el 26/09/2012 20:01:45
Sería conveniente que nos pusieras algunos datos de ejemplo de cada una de tus tablas y cómo es que pretendes agrupar los datos... y sigues sin mencionar con qué BD estás trabajando... desde el primer post te dije que este dato es muy importante para tratar de ayudarte.

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duda Novata

Publicado por Esperanza (9 intervenciones) el 26/09/2012 21:05:02
Estoy trabajando con bds de sql, y lo que necesito es agruparlos por LotNumber para afectar despues a todos los articulos que pertenezcan a un mismo lote, he conseguido ordenarlos pero no agruparlos por lotNumber.

Tabla1.- Items
Campo1.- ItemCode (Alfanumerico)
Campo2.- ItemDescription (Alfanumerico)

Tabla2.- ItemNumbers
Campo1.- ItemCode (Alfanumerico)
Campo2.- LotNumber (Alfanumerico)

Gracias...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duda Novata

Publicado por leonardo_josue (877 intervenciones) el 26/09/2012 22:15:43
Hola de nuevo Esperanza,:

Aclaremos algunas cosas que creo que no terminas de entender...

1
Estoy trabajando con bds de sql


SQL no es un motor de Base de Datos, es un lenguaje de Consultas que utilizan las BD... Un motor de BD (DBMS) puede ser SQL Server, MySQL, ORACLE, Interbase, PostgreSQL, SQL Lite y muchos más...

http://es.wikipedia.org/wiki/SQL
http://es.wikipedia.org/wiki/Sistema_de_gesti%C3%B3n_de_bases_de_datos

En mi post te puse esto:

1
2
Sería conveniente que nos pusieras algunos datos de ejemplo de cada
una de tus tablas y cómo es que pretendes agrupar los datos


Cosa que tampoco haces... hay muchas formas de agrupar datos, por eso si no nos dices qué es lo que quieres hacer es imposible ayudarte.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
mysql> SELECT * FROM tabla;
+------+-------------+-------+
| id   | descripcion | valor |
+------+-------------+-------+
|    1 | uno         |     1 |
|    1 | one         |     3 |
|    1 | eins        |     9 |
|    2 | dos         |    10 |
|    2 | two         |     7 |
|    2 | zwei        |    20 |
|    2 | Deux        |    13 |
+------+-------------+-------+
7 rows in set (0.00 sec)
 
mysql> SELECT
    ->   id,
    ->   GROUP_CONCAT(descripcion) descrip,
    ->   COUNT(id) contar,
    ->   SUM(valor) sumar,
    ->   MIN(valor) mini,
    ->   MAX(valor) maxi,
    ->   AVG(valor) prom
    -> FROM tabla GROUP BY id;
+------+-------------------+--------+-------+------+------+---------+
| id   | descrip           | contar | sumar | mini | maxi | prom    |
+------+-------------------+--------+-------+------+------+---------+
|    1 | uno,one,eins      |      3 |    13 |    1 |    9 |  4.3333 |
|    2 | dos,two,zwei,Deux |      4 |    50 |    7 |   20 | 12.5000 |
+------+-------------------+--------+-------+------+------+---------+
2 rows in set (0.00 sec)


Mucho Ojo con lo que te pedimos.

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar