MySQL - Autonumérico en Select

 
Vista:

Autonumérico en Select

Publicado por Javier (1 intervención) el 14/11/2009 21:30:03
Hola a todos, mi pregunta es la siguiente:
tengo una BD con una tabla FACTURA, la misma tiene un campo Vendedor, la cual recibe el nombre del vendedor (ningún ID). La cuestión es que tengo que hacer un DataWarehouse y necesito recibir el nombre del vendedor con un ID autonumérico por cada vendedor. Eso lo recibo y lo utilizo en el DataWarehouse para mostrar la info. Les muestro el SQL que tengo:

1
2
3
4
5
6
7
8
9
10
SELECT DISTINCT
   "dbo"."PceVenEnt".XXVEND AS XXVEND
   "CREAR CAMPO AUTONUMÉRICO"
FROM
   "dbo"."PceVenEnt"
WHERE
   (
       ( "dbo"."PceVenEnt".XXVEND is not null )
 AND ( "dbo"."PceVenEnt"."veType" IN (11, 12) )
   )

Gracias desde ya!!!
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

RE:Autonumérico en Select

Publicado por Gonzalo GC (339 intervenciones) el 15/11/2009 13:53:54
Francamente no se entiende muy bien qué es lo que quieres, por lo que te diré qué es lo que entiendo.
- Estas tratando de almacenar el resultado de un reporte de ventas en una tabla de un datawarewouse. Es decir, estás consolidando la info proveniente de transacciones de ventas.
- En consulta estás recibiendo el nombre del vendedor, pero no su ID.

Aquí la interpretación confusa:
1) Quieres recibir el ID del vendedor de su tabla origen.
2) Quieres que por cada nombre de vendedor se genere un ID nuevo y que sean autoincrementales y consecutivos.

Vayamos por partes:
- SI lo que quieres es recuperar los ID de los vendedores, lo que debes hacer es reformar la consulta para obtenerlos de su tabla origen (Vendedores).
- SI lo que quieres es crear un nuevo ordenamiento basado en los nombres de los vendedores tienes dos problemas:

Por un lado no puede asegurar que no se producirá el problema de que haya dos vendedores distintos con el mismo nombre (he conocido caso con más de tres), por lo que el nombre no es un identificador confiable.

En segundo lugar, si creas un nuevo identificador para el vendedor generarás inconsistencia de datos respecto a los datos originales; tendrías identificadores distintos en la base de datos y el DataWarehouse para los mismos vendedores. En este caso puntual, de todos modos no se puede lograr con una consulta. Debes en too caso usar un proceso almacenado.

Finalmente, la sentencia que pones, no tiene una lógica clara. El WHERE que pones pareciera implicar que la tabla origen puede contener ventas sin vendedor, pero que pueda existir un tipo de vendedor.
¿Cómo es posible eso?
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