Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

error en una vista " El nombre de columna 'x' no es válido"

Estas en el tema de error en una vista " El nombre de columna 'x' no es válido" en el foro de SQL Server en Foros del Web. tengo una vista del tipo select * from ((select from where) union all (select from where)) as t si tomo cada una de las 2 ...
  #1 (permalink)  
Antiguo 23/12/2010, 09:21
 
Fecha de Ingreso: octubre-2009
Mensajes: 4
Antigüedad: 14 años, 6 meses
Puntos: 0
error en una vista " El nombre de columna 'x' no es válido"

tengo una vista del tipo

select * from ((select from where) union all (select from where)) as t

si tomo cada una de las 2 consultas y las corro de manera individual corren perfectamente, cuado las uno me aparese este error y de hecho copio talcual las corro individualmente, las pego en la vista y es cuando aparese El nombre de columna 'x' no es válido.

obviamente el nombre de la tabla existe y el campo tambien, el sql server manager 2008 permite autocompletar he itulizado este apcion, aun asi sigue con el mismo error.
alguien me puede ayudar.
  #2 (permalink)  
Antiguo 23/12/2010, 09:56
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: error en una vista " El nombre de columna 'x' no es válido"

En alguna de las 2 subconsultas debes tener un campo calculado.
Fijate bien, y recuerda que la cantidad de columnas y tipo de datos de estas deben coincidir en ambas subconsultas.
Lo mejor seria que pongas tu codigo completo.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #3 (permalink)  
Antiguo 23/12/2010, 10:10
 
Fecha de Ingreso: octubre-2009
Mensajes: 4
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: error en una vista " El nombre de columna 'x' no es válido"

esta es l a vista


CREATE VIEW dbo._ConsFaltantes
AS
SELECT DISTINCT
faltantes.[Alias],
faltantes.NumAlias,
faltantes.nombreSuc,
faltantes.clave_linea,
faltantes.nombre_linea,
faltantes.Depto,
faltantes.clave_artic,
faltantes.nombre_artic,
faltantes.tipoColor,
faltantes.clasif,
faltantes.Nom_plaza,
faltantes.fecha_pedido,
faltantes.cant_pedida,
faltantes.cant_surtida
FROM (
(SELECT DISTINCT sw_cat_suc.NumAlias,
sw_cat_suc.nombre AS nombreSuc,
sw_cat_suc.[Alias],
cs_cat_linea.clave clave_linea,
cs_cat_linea.nombre nombre_linea,
cs_cat_dpto.nom_corto Depto,
cs_cat_artic.clave clave_artic,
cs_cat_artic.nombre nombre_artic,
cs_cat_artic.nombre2 tipoColor,
cs_cat_artic.clasif,
cs_cat_artic.clasif2 as id_plaza,
Plazas.Descripcion AS Nom_plaza,
cs_doc_comp.fecha as fecha_pedido,
sum(cs_part_comp.cant) AS cant_pedida
FROM cs_doc_comp, cs_part_comp, cs_cat_artic, cs_cat_dpto, cs_cat_linea, sw_cat_suc, Plazas
WHERE cs_doc_comp.doc_comp_id = cs_part_comp.doc_comp_id
and cs_doc_comp.cons_suc_id = cs_part_comp.cons_suc_id
and cs_part_comp.artic_id = cs_cat_artic.artic_id
and cs_part_comp.cons_suc_id = cs_cat_artic.cons_suc_id
and cs_cat_artic.depto_id = cs_cat_dpto.dpto_id
and cs_cat_artic.cons_suc_id = cs_cat_dpto.cons_suc_id
and cs_cat_artic.linea_id = cs_cat_linea.linea_id
and cs_cat_artic.cons_suc_id = cs_cat_linea.cons_suc_id
and cs_cat_artic.clasif2= Plazas.ID_Plaza
and cs_doc_comp.cons_suc_id = sw_cat_suc.suc_id
and cs_doc_comp.tipo_doc = 10
and cs_doc_comp.status = 0
group by sw_cat_suc.NumAlias, sw_cat_suc.nombre,sw_cat_suc.[Alias], cs_cat_linea.clave, cs_cat_linea.nombre, cs_cat_dpto.nom_corto, cs_cat_artic.clave, cs_cat_artic.nombre, cs_cat_artic.nombre2, cs_cat_artic.clasif, cs_cat_artic.clasif2,Plazas.Descripcion,cs_doc_com p.fecha
)
Union ALL

(SELECT
sw_cat_suc_a.NumAlias,
sw_cat_suc_a.nombre nombreSuc,
sw_cat_suc_a.[Alias],
cs_cat_linea.clave as clave_linea,
cs_cat_linea.nombre as nombre_linea,
cs_cat_dpto.nom_corto as Depto,
cs_cat_artic.clave as clave_artic,
cs_cat_artic.nombre as nombre_artic,
cs_cat_artic.nombre2 as tipoColor,
cs_cat_artic.clasif,
cs_cat_artic.clasif2 as id_plaza,
Plazas.Descripcion AS Nom_plaza,
cs_doc_comp.fecha as fecha_pedido,
sum(cs_part_trans.cantidad) as cant_surtida
FROM cs_doc_trans, cs_part_trans, cs_cat_artic, cs_cat_dpto, cs_cat_linea, sw_cat_suc AS sw_cat_suc_a, sw_cat_suc as sw_cat_suc_b, cs_doc_comp, Plazas
WHERE cs_doc_trans.doc_trans_id = cs_part_trans.doc_trans_id
and cs_doc_trans.cons_suc_id = cs_part_trans.cons_suc_id
and cs_part_trans.artic_id = cs_cat_artic.artic_id
and cs_part_trans.cons_suc_id = cs_cat_artic.cons_suc_id
and cs_cat_artic.depto_id = cs_cat_dpto.dpto_id
and cs_cat_artic.cons_suc_id = cs_cat_dpto.cons_suc_id
and cs_cat_artic.linea_id = cs_cat_linea.linea_id
and cs_cat_artic.cons_suc_id = cs_cat_linea.cons_suc_id
and cs_cat_artic.clasif2= Plazas.ID_Plaza
and cs_doc_trans.suc_id_r = sw_cat_suc_a.suc_id
and cs_doc_trans.suc_id_e = sw_cat_suc_b.suc_id
and cs_doc_comp.num_doc = cs_doc_trans.num_ref
and cs_doc_comp.cons_suc_id = cs_doc_trans.suc_id_r
and cs_doc_trans.tipo_doc = 6
and cs_doc_trans.status = 0
GROUP BY sw_cat_suc_a.NumAlias, sw_cat_suc_a.nombre, sw_cat_suc_a.[Alias], cs_cat_linea.clave, cs_cat_linea.nombre, cs_cat_dpto.nom_corto, cs_cat_artic.clave, cs_cat_artic.nombre, cs_cat_artic.nombre2, cs_cat_artic.clasif , cs_cat_artic.clasif2,Plazas.Descripcion, cs_doc_comp.fecha)
) as faltantes
  #4 (permalink)  
Antiguo 23/12/2010, 13:42
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: error en una vista " El nombre de columna 'x' no es válido"

Debes validar que ambas consultas, tengan el mismo numero de columnas...
__________________
MCTS Isaias Islas
  #5 (permalink)  
Antiguo 23/12/2010, 13:45
 
Fecha de Ingreso: octubre-2009
Mensajes: 4
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: error en una vista " El nombre de columna 'x' no es válido"

de antemano muchas gracias por reponder, ambas tiene el mismo num de columnas
  #6 (permalink)  
Antiguo 24/12/2010, 09:16
 
Fecha de Ingreso: septiembre-2008
Mensajes: 12
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: error en una vista " El nombre de columna 'x' no es válido"

Le he incluido un alias a las sub consultas. Prueba por favor

CREATE VIEW dbo._ConsFaltantes
AS
SELECT DISTINCT
faltantes.[Alias],
faltantes.NumAlias,
faltantes.nombreSuc,
faltantes.clave_linea,
faltantes.nombre_linea,
faltantes.Depto,
faltantes.clave_artic,
faltantes.nombre_artic,
faltantes.tipoColor,
faltantes.clasif,
faltantes.Nom_plaza,
faltantes.fecha_pedido,
faltantes.cant_pedida,
faltantes.cant_surtida
FROM (
(SELECT DISTINCT sw_cat_suc.NumAlias,
sw_cat_suc.nombre AS nombreSuc,
sw_cat_suc.[Alias],
cs_cat_linea.clave clave_linea,
cs_cat_linea.nombre nombre_linea,
cs_cat_dpto.nom_corto Depto,
cs_cat_artic.clave clave_artic,
cs_cat_artic.nombre nombre_artic,
cs_cat_artic.nombre2 tipoColor,
cs_cat_artic.clasif,
cs_cat_artic.clasif2 as id_plaza,
Plazas.Descripcion AS Nom_plaza,
cs_doc_comp.fecha as fecha_pedido,
sum(cs_part_comp.cant) AS cant_pedida
FROM cs_doc_comp, cs_part_comp, cs_cat_artic, cs_cat_dpto, cs_cat_linea, sw_cat_suc, Plazas
WHERE cs_doc_comp.doc_comp_id = cs_part_comp.doc_comp_id
and cs_doc_comp.cons_suc_id = cs_part_comp.cons_suc_id
and cs_part_comp.artic_id = cs_cat_artic.artic_id
and cs_part_comp.cons_suc_id = cs_cat_artic.cons_suc_id
and cs_cat_artic.depto_id = cs_cat_dpto.dpto_id
and cs_cat_artic.cons_suc_id = cs_cat_dpto.cons_suc_id
and cs_cat_artic.linea_id = cs_cat_linea.linea_id
and cs_cat_artic.cons_suc_id = cs_cat_linea.cons_suc_id
and cs_cat_artic.clasif2= Plazas.ID_Plaza
and cs_doc_comp.cons_suc_id = sw_cat_suc.suc_id
and cs_doc_comp.tipo_doc = 10
and cs_doc_comp.status = 0
group by sw_cat_suc.NumAlias, sw_cat_suc.nombre,sw_cat_suc.[Alias], cs_cat_linea.clave, cs_cat_linea.nombre, cs_cat_dpto.nom_corto, cs_cat_artic.clave, cs_cat_artic.nombre, cs_cat_artic.nombre2, cs_cat_artic.clasif, cs_cat_artic.clasif2,Plazas.Descripcion,cs_doc_com p.fecha
) a
Union ALL

(SELECT
sw_cat_suc_a.NumAlias,
sw_cat_suc_a.nombre nombreSuc,
sw_cat_suc_a.[Alias],
cs_cat_linea.clave as clave_linea,
cs_cat_linea.nombre as nombre_linea,
cs_cat_dpto.nom_corto as Depto,
cs_cat_artic.clave as clave_artic,
cs_cat_artic.nombre as nombre_artic,
cs_cat_artic.nombre2 as tipoColor,
cs_cat_artic.clasif,
cs_cat_artic.clasif2 as id_plaza,
Plazas.Descripcion AS Nom_plaza,
cs_doc_comp.fecha as fecha_pedido,
sum(cs_part_trans.cantidad) as cant_surtida
FROM cs_doc_trans, cs_part_trans, cs_cat_artic, cs_cat_dpto, cs_cat_linea, sw_cat_suc AS sw_cat_suc_a, sw_cat_suc as sw_cat_suc_b, cs_doc_comp, Plazas
WHERE cs_doc_trans.doc_trans_id = cs_part_trans.doc_trans_id
and cs_doc_trans.cons_suc_id = cs_part_trans.cons_suc_id
and cs_part_trans.artic_id = cs_cat_artic.artic_id
and cs_part_trans.cons_suc_id = cs_cat_artic.cons_suc_id
and cs_cat_artic.depto_id = cs_cat_dpto.dpto_id
and cs_cat_artic.cons_suc_id = cs_cat_dpto.cons_suc_id
and cs_cat_artic.linea_id = cs_cat_linea.linea_id
and cs_cat_artic.cons_suc_id = cs_cat_linea.cons_suc_id
and cs_cat_artic.clasif2= Plazas.ID_Plaza
and cs_doc_trans.suc_id_r = sw_cat_suc_a.suc_id
and cs_doc_trans.suc_id_e = sw_cat_suc_b.suc_id
and cs_doc_comp.num_doc = cs_doc_trans.num_ref
and cs_doc_comp.cons_suc_id = cs_doc_trans.suc_id_r
and cs_doc_trans.tipo_doc = 6
and cs_doc_trans.status = 0
GROUP BY sw_cat_suc_a.NumAlias, sw_cat_suc_a.nombre, sw_cat_suc_a.[Alias], cs_cat_linea.clave, cs_cat_linea.nombre, cs_cat_dpto.nom_corto, cs_cat_artic.clave, cs_cat_artic.nombre, cs_cat_artic.nombre2, cs_cat_artic.clasif , cs_cat_artic.clasif2,Plazas.Descripcion, cs_doc_comp.fecha) b
) as faltantes

Cita:
Iniciado por xeresara Ver Mensaje
esta es l a vista


CREATE VIEW dbo._ConsFaltantes
AS
SELECT DISTINCT
faltantes.[Alias],
faltantes.NumAlias,
faltantes.nombreSuc,
faltantes.clave_linea,
faltantes.nombre_linea,
faltantes.Depto,
faltantes.clave_artic,
faltantes.nombre_artic,
faltantes.tipoColor,
faltantes.clasif,
faltantes.Nom_plaza,
faltantes.fecha_pedido,
faltantes.cant_pedida,
faltantes.cant_surtida
FROM (
(SELECT DISTINCT sw_cat_suc.NumAlias,
sw_cat_suc.nombre AS nombreSuc,
sw_cat_suc.[Alias],
cs_cat_linea.clave clave_linea,
cs_cat_linea.nombre nombre_linea,
cs_cat_dpto.nom_corto Depto,
cs_cat_artic.clave clave_artic,
cs_cat_artic.nombre nombre_artic,
cs_cat_artic.nombre2 tipoColor,
cs_cat_artic.clasif,
cs_cat_artic.clasif2 as id_plaza,
Plazas.Descripcion AS Nom_plaza,
cs_doc_comp.fecha as fecha_pedido,
sum(cs_part_comp.cant) AS cant_pedida
FROM cs_doc_comp, cs_part_comp, cs_cat_artic, cs_cat_dpto, cs_cat_linea, sw_cat_suc, Plazas
WHERE cs_doc_comp.doc_comp_id = cs_part_comp.doc_comp_id
and cs_doc_comp.cons_suc_id = cs_part_comp.cons_suc_id
and cs_part_comp.artic_id = cs_cat_artic.artic_id
and cs_part_comp.cons_suc_id = cs_cat_artic.cons_suc_id
and cs_cat_artic.depto_id = cs_cat_dpto.dpto_id
and cs_cat_artic.cons_suc_id = cs_cat_dpto.cons_suc_id
and cs_cat_artic.linea_id = cs_cat_linea.linea_id
and cs_cat_artic.cons_suc_id = cs_cat_linea.cons_suc_id
and cs_cat_artic.clasif2= Plazas.ID_Plaza
and cs_doc_comp.cons_suc_id = sw_cat_suc.suc_id
and cs_doc_comp.tipo_doc = 10
and cs_doc_comp.status = 0
group by sw_cat_suc.NumAlias, sw_cat_suc.nombre,sw_cat_suc.[Alias], cs_cat_linea.clave, cs_cat_linea.nombre, cs_cat_dpto.nom_corto, cs_cat_artic.clave, cs_cat_artic.nombre, cs_cat_artic.nombre2, cs_cat_artic.clasif, cs_cat_artic.clasif2,Plazas.Descripcion,cs_doc_com p.fecha
)
Union ALL

(SELECT
sw_cat_suc_a.NumAlias,
sw_cat_suc_a.nombre nombreSuc,
sw_cat_suc_a.[Alias],
cs_cat_linea.clave as clave_linea,
cs_cat_linea.nombre as nombre_linea,
cs_cat_dpto.nom_corto as Depto,
cs_cat_artic.clave as clave_artic,
cs_cat_artic.nombre as nombre_artic,
cs_cat_artic.nombre2 as tipoColor,
cs_cat_artic.clasif,
cs_cat_artic.clasif2 as id_plaza,
Plazas.Descripcion AS Nom_plaza,
cs_doc_comp.fecha as fecha_pedido,
sum(cs_part_trans.cantidad) as cant_surtida
FROM cs_doc_trans, cs_part_trans, cs_cat_artic, cs_cat_dpto, cs_cat_linea, sw_cat_suc AS sw_cat_suc_a, sw_cat_suc as sw_cat_suc_b, cs_doc_comp, Plazas
WHERE cs_doc_trans.doc_trans_id = cs_part_trans.doc_trans_id
and cs_doc_trans.cons_suc_id = cs_part_trans.cons_suc_id
and cs_part_trans.artic_id = cs_cat_artic.artic_id
and cs_part_trans.cons_suc_id = cs_cat_artic.cons_suc_id
and cs_cat_artic.depto_id = cs_cat_dpto.dpto_id
and cs_cat_artic.cons_suc_id = cs_cat_dpto.cons_suc_id
and cs_cat_artic.linea_id = cs_cat_linea.linea_id
and cs_cat_artic.cons_suc_id = cs_cat_linea.cons_suc_id
and cs_cat_artic.clasif2= Plazas.ID_Plaza
and cs_doc_trans.suc_id_r = sw_cat_suc_a.suc_id
and cs_doc_trans.suc_id_e = sw_cat_suc_b.suc_id
and cs_doc_comp.num_doc = cs_doc_trans.num_ref
and cs_doc_comp.cons_suc_id = cs_doc_trans.suc_id_r
and cs_doc_trans.tipo_doc = 6
and cs_doc_trans.status = 0
GROUP BY sw_cat_suc_a.NumAlias, sw_cat_suc_a.nombre, sw_cat_suc_a.[Alias], cs_cat_linea.clave, cs_cat_linea.nombre, cs_cat_dpto.nom_corto, cs_cat_artic.clave, cs_cat_artic.nombre, cs_cat_artic.nombre2, cs_cat_artic.clasif , cs_cat_artic.clasif2,Plazas.Descripcion, cs_doc_comp.fecha)
) as faltantes

Etiquetas: columna, nombre, vistas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:38.