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

Problema Con Union

Estas en el tema de Problema Con Union en el foro de Bases de Datos General en Foros del Web. Buenas gente, Server: Msg 104, Level 15, State 1, Line 2 ORDER BY items must appear in the select list if the statement contains a ...
  #1 (permalink)  
Antiguo 03/03/2004, 09:13
 
Fecha de Ingreso: noviembre-2001
Ubicación: Groningen
Mensajes: 175
Antigüedad: 22 años, 5 meses
Puntos: 0
Problema Con Union

Buenas gente,

Server: Msg 104, Level 15, State 1, Line 2
ORDER BY items must appear in the select list if the statement contains a UNION operator.

Server: Msg 104, Level 15, State 1, Line 2
ORDER BY items must appear in the select list if the statement contains a UNION operator.

El de arriba es el error que me marca el Query Analizer.

trato de hacer una union de dos seleccion que por separado corren perfecto..

Ambas devuelven la misma cantidad de campos, con nombres y tipos iguales.

Creo que el problema es que una de las selecciones hace uso de INNER JOIN cuatro veces y LEFT JOIN otras cuatro veces tambien.
Talvez esa sea la razon,,,

En internet no encuentro mucho al respecto..

Ideas??

edgardo
  #2 (permalink)  
Antiguo 03/03/2004, 09:18
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 707
Antigüedad: 21 años
Puntos: 0
El error es, porque estás poniendo un order by, y el campo no se encuentra.

Ten en cuenta que para la select, los nombres de campo, son los que aparecen en la primera SELECT de la UNION

Un saludo
  #3 (permalink)  
Antiguo 03/03/2004, 09:23
 
Fecha de Ingreso: noviembre-2001
Ubicación: Groningen
Mensajes: 175
Antigüedad: 22 años, 5 meses
Puntos: 0
NO,

Chequee que pudiera ser eso.
Pero no es.
Limite el order a un solo campo, que no es calculado, es un simple entero que es usado para saber de que selectie provienen los datos e igualmente obtengo el error, el mismo error..


ed
  #4 (permalink)  
Antiguo 03/03/2004, 09:45
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 707
Antigüedad: 21 años
Puntos: 0
Escribe la SELECT que estás haciendo, así se puede ver algo más
  #5 (permalink)  
Antiguo 03/03/2004, 09:49
 
Fecha de Ingreso: noviembre-2001
Ubicación: Groningen
Mensajes: 175
Antigüedad: 22 años, 5 meses
Puntos: 0
Código:
	SELECT TOP 101
		V.ID, 
		2 AS VacatureType,
		V.FunctieNaam, 
		V.FunctieOmschrijving, 
		V.FunctieUren, 
		V.StandplaatsNaam, 
		V.FunctieEisen, 
		B.Naam AS BedrijfsNaam, 
		B.ID AS BedrijfsID, 
		B.Profiel AS BedrijfProfiel, 
		V.SolliciterenAcquisitie, 
		V.SolliciterenToevoegen, 
		V.SolliciterenOvv, 
		V.SolliciterenVoor,
		SB.Naam AS SolliciterenAan, 
		SBC.Naam AS SolliciterenTav, 
		WebData.dbo.Get_AdresString(SBA.ID,'12') AS SolliciterenAdres, 
		WebData.dbo.Get_AdresString(SBA.ID,'3') AS SolliciterenPostCode, 
		WebData.dbo.Get_AdresString(SBA.ID,'4') AS SolliciterenPlaats, 
		IBC.Naam AS InfoNaam, 
		(SELECT TOP 1 Nummer From WebData..BedrijfContactTelefoon AS BCT WHERE BCT.ContactID = IBC.ID And BCT.Type<>6 Order By BCT.Type ) AS InfoTelefoonNummer, 
		(SELECT TOP 1 Nummer From WebData..BedrijfContactTelefoon AS BCT WHERE BCT.ContactID = IBC.ID And BCT.Type=6 ) AS InfoFaxNummer, 
		(SELECT TOP 1 Adres From WebData..BedrijfContactEMail AS BCE WHERE BCE.ContactID = IBC.ID ) AS InfoEmail, 
		(SELECT TOP 1 Nummer From WebData..BedrijfContactTelefoon AS BCT WHERE BCT.ContactID = SBC.ID And BCT.Type<>6 Order By BCT.Type ) AS InfoTelefoonNummer2, 
		(SELECT TOP 1 Nummer From WebData..BedrijfContactTelefoon AS BCT WHERE BCT.ContactID = SBC.ID And BCT.Type=6 ) AS InfoFaxNummer2, 
		(SELECT TOP 1 Adres From WebData..BedrijfContactEMail AS BCE WHERE BCE.ContactID = SBC.ID ) AS InfoEmail2, 
		LB.URL AS VacatureBron, 
		V.Inserted, 
--		WEBDATA.dbo.Get_VacatureStatusDate(V.ID) AS geActualiseerd, 
--		LookUp.dbo.Afstand(LP.ID, 0) AS Afstand 
		0 AS Afstand
	
	FROM WebData.dbo.RET_IDBLOCK(9) AS IDBLOCK 
	INNER JOIN WebData..Vacature AS V ON V.ID = IDBLOCK.VID 
	INNER JOIN WebData..Links_Vacature AS LV ON LV.ID = IDBLOCK.LVID 
	INNER JOIN WebData..Links_Basis AS LB ON LB.ID = IDBLOCK.LBID 
	INNER JOIN WebData..Bedrijf AS B ON B.ID = IDBLOCK.BID 
	LEFT JOIN LookUp..Plaats AS LP ON LP.ID = LookUp.dbo.Get_PlaatsIDbyNaam(WebData.dbo.Get_VacaturePlaatsNaam(IDBLOCK.VID)) 
	LEFT JOIN WebData..Bedrijf AS SB ON SB.ID = IDBLOCK.SBID 
	LEFT JOIN WebData..BedrijfAdres AS SBA ON SBA.ID = IDBLOCK.SAID 
	LEFT JOIN WebData..BedrijfContact AS SBC ON SBC.ID = IDBLOCK.SBCID 
	LEFT JOIN WebData..BedrijfContact AS IBC ON IBC.ID = IDBLOCK.IBCID 

	WHERE V.ID IN (49026,11010,10683,7333,8581,8577) 

UNION 


SELECT TOP 101
	V2.ID, 
	1 AS VacatureType,
	V2.FunctieNaam, 
	V2.FunctieOmschrijving, 
	V2.FunctieUren, 
	V2.StandplaatsNaam, 
	V2.FunctieEisen, 
	V2.BedrijfNaam AS BedrijfsNaam, 
	0 AS BedrijfsID, 
	V2.BedrijfProfiel AS BedrijfProfiel, 
	V2.SolliciterenAcquisitie, 
	V2.SolliciterenToevoegen, 
	V2.SolliciterenOvv, 
	V2.SolliciterenVoor, 
	V2.SolliciterenAan, 
	V2.SolliciterenTav, 
	V2.SolliciterenAdres, 
	V2.SolliciterenPostCode, 
	V2.SolliciterenPlaats, 
	V2.InfoNaam, 
	V2.InfoTelefoonNummer, 
	V2.InfoFaxNummer, 
	V2.InfoEmail, 
	'' AS InfoTelefoonNummer2, 
	'' AS InfoFaxNummer2, 
	'' AS InfoEmail2, 
	V2.InfoURL AS VacatureBron, 
	V2.Inserted, 
--	V2.VacatureBronDatum AS geActualiseerd, 
    0 AS Afstand 

	FROM DatavacData..Vacatures AS V2 
	WHERE V2.ID IN (923173,923551)



ORDER BY VacatureType --, BedrijfsNaam, FunctieNaam, geActualiseerd DESC
  #6 (permalink)  
Antiguo 03/03/2004, 09:58
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 707
Antigüedad: 21 años
Puntos: 0
El problema parece estar en los SELECT intermedios que tienes, al ponerle un order by, la consulta UNION da error.

Intenta cambiar esas selects para que te den el mismo resultado de otra forma, a traves de joins, o con el lookup...
  #7 (permalink)  
Antiguo 03/03/2004, 10:06
 
Fecha de Ingreso: noviembre-2001
Ubicación: Groningen
Mensajes: 175
Antigüedad: 22 años, 5 meses
Puntos: 0
si al parecer eso seria el error,
Ahora lo cambio y saltan errores medios raros por otros lares.

The text, ntext, or image data type cannot be selected as DISTINCT.

lo voy a vichar todo mas traquilo..


gracias por tu ayuda..


resulta un poquito "bug' el error marcado no???

edgardo
  #8 (permalink)  
Antiguo 03/03/2004, 10:21
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 707
Antigüedad: 21 años
Puntos: 0
Bueno... los mesajes de error no siempre describen lo que de verdad falla, si bien es cierto que no es sencillo.

Bueno, paciencia, y suerte
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 09:39.