Retroceder   Foros del Web > Programación para sitios web > Bases de Datos > SQL Server

Respuesta
 
Herramientas Desplegado
Antiguo 29-may-2008, 07:27   #1 (permalink)
Dixgo ha deshabilitado el karma
 
Fecha de Ingreso: mayo-2008
Ubicación: Peru
Mensajes: 2
Respuesta: Insert Into con variable en SQL server

hola gent...una consulta..me gustaria saber xq me sale el error de :
Mens. 137, Nivel 15, Estado 1, Línea 6
Debe declarar la variable escalar "@TABLA1".

mi code:

DECLARE @TABLA1 TABLE(C_Tare INT,
D_MES VARCHAR(20),
N_ESTA VARCHAR(10),
F_PROG DATETIME)

SET @TABLA1 = (SELECT TOP 1
Control.C_Tare,
CASE Periodo.D_Mes
When 1 Then 'ENERO'
When 2 Then 'FEBRERO'
When 3 Then 'MARZO'
When 4 Then 'ABRIL'
When 5 Then 'MAYO'
When 6 Then 'JUNIO'
When 7 Then 'JULIO'
When 8 Then 'AGOSTO'
When 9 Then 'SETIEMBRE'
When 10 Then 'OCTUBRE'
When 11 Then 'NOVIEMBRE'
When 12 Then 'DICIEMBRE'
END + ' ' + (CONVERT(VARCHAR(5),YEAR(Control.D_CierProg))) as D_Mes,
Estado.N_Esta,
ISNULL(CONVERT(char,Control.D_CierProg,103),'-') as D_CierProg
FROM Periodo
INNER JOIN Control ON Periodo.C_Peri = Control.C_Peri
INNER JOIN Estado ON Control.C_Esta = Estado.C_Esta
WHERE Estado.N_Esta = 'CERRADO' OR Estado.N_Esta ='ABIERTO'
ORDER BY D_MES DESC)

DECLARE @TABLA2 TABLE(C_Tare INT,
D_MES2 VARCHAR(20),
N_ESTA2 VARCHAR(10),
F_PROG2 DATETIME)

SET @TABLA2 = (SELECT TOP 1
Control.C_Tare,
CASE Periodo.D_Mes
When 1 Then 'ENERO'
When 2 Then 'FEBRERO'
When 3 Then 'MARZO'
When 4 Then 'ABRIL'
When 5 Then 'MAYO'
When 6 Then 'JUNIO'
When 7 Then 'JULIO'
When 8 Then 'AGOSTO'
When 9 Then 'SETIEMBRE'
When 10 Then 'OCTUBRE'
When 11 Then 'NOVIEMBRE'
When 12 Then 'DICIEMBRE'
END + ' ' + CONVERT(VARCHAR(5),YEAR(D_CIERPROG) )as D_Mes,
Estado.N_Esta,
ISNULL(CONVERT(char,Control.D_CierProg,103),'-') as D_CierProg
FROM Periodo
INNER JOIN Control ON Periodo.C_Peri = Control.C_Peri
INNER JOIN Estado ON Control.C_Esta = Estado.C_Esta
WHERE Estado.N_Esta = 'EN PROCESO'
ORDER BY YEAR(D_CIERPROG) DESC)

SELECT *
FROM @TABLA1 TB1
INNER JOIN @TABLA2 TB2 ON TB1.C_Tare = TB2.C_Tare

me gustaria saber su respuesta...gracias..hablamoz...
Dixgo está desconectado   Responder Citando
Antiguo 29-may-2008, 12:34   #2 (permalink)
Moderador
RootK llegará a ser famoso muy prontoRootK llegará a ser famoso muy pronto
 
Avatar de RootK
 
Fecha de Ingreso: noviembre-2002
Ubicación: México D.F
Mensajes: 7.552
Enviar un mensaje por MSN a RootK
Respuesta: Insert Into con variable en SQL server

hola y bienvenido Dixgo

Tu pregunta está más enfocada a BD (te recomiendo que las dudas las coloques en el foro correspondiente)

En cuanto a tu problema es la asignación, debería ser mas o menos así para que te funcione


Cita:
DECLARE @TABLA1 TABLE(C_Tare INT,
D_MES VARCHAR(20),
N_ESTA VARCHAR(10),
F_PROG DATETIME)

INSERT INTO @TABLA1
SELECT TOP 1
Control.C_Tare,
CASE Periodo.D_Mes
When 1 Then 'ENERO'
When 2 Then 'FEBRERO'
When 3 Then 'MARZO'
When 4 Then 'ABRIL'
When 5 Then 'MAYO'
When 6 Then 'JUNIO'
When 7 Then 'JULIO'
When 8 Then 'AGOSTO'
When 9 Then 'SETIEMBRE'
When 10 Then 'OCTUBRE'
When 11 Then 'NOVIEMBRE'
When 12 Then 'DICIEMBRE'
END + ' ' + (CONVERT(VARCHAR(5),YEAR(Control.D_CierProg))) as D_Mes,
Estado.N_Esta,
ISNULL(CONVERT(char,Control.D_CierProg,103),'-') as D_CierProg
FROM Periodo
INNER JOIN Control ON Periodo.C_Peri = Control.C_Peri
INNER JOIN Estado ON Control.C_Esta = Estado.C_Esta
WHERE Estado.N_Esta = 'CERRADO' OR Estado.N_Esta ='ABIERTO'
ORDER BY D_MES DESC
Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .
RootK está desconectado   Responder Citando
Antiguo 29-may-2008, 13:00   #3 (permalink)
gemarin ha deshabilitado el karma
 
Fecha de Ingreso: mayo-2008
Mensajes: 6
Respuesta: insertar en tablas creadas

Hola:

Esta es la forma como declaro una tabla:


declare @SociedadPeriodo AS TABLE
(
LlaveNEC varchar(23)
,Periodo char(7)
,Fecha smalldatetime
)



Gema
Colombia
gemarin está desconectado   Responder Citando
Antiguo 29-may-2008, 13:19   #4 (permalink)
Colaborador
Andres95 tiene algunos puntos positivos de karma
 
Avatar de Andres95
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.149
De acuerdo Respuesta: insertar en tablas creadas

El error es porque la estas manejando como si fuera escalar...

aunque es una variable, debes manejarla como si fuera una tabla normal...


la insercion seria entonces del modo:

Código:
Insert into @mivariabletabla (miscampos)
Select micamposselect
From  miotratabla
Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
Andres95 está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 12:53.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93