Tengo una consulta sobre un servidor vinculado( access) que me devuelve
nulos y por sql lo tengo que cambiar ceros
no consigo establecer una sintaxis correcta podeis echarme una mano, gracias
el area de la chapuza esta delimitada
Perdon pero en mi mensaje anterior no estaba todo el procedimento
****************
if exists (select * from dbo.sysobjects where id
object_id(N'[dbo].[MovimientoStock]') and OBJECTPROPERTY(id, N'IsUserTable')
= 1)
drop table [dbo].[MovimientoStock]
GO
CREATE TABLE [dbo].[MovimientoStock] (
[Almacen] [smallint] NOT NULL ,
[Articulo] [varchar] (18) COLLATE Latin1_General_CI_AI NOT NULL ,
[Fecha] [smalldatetime] NOT NULL ,
[Documento] [varchar] (9) COLLATE Latin1_General_CI_AI NOT NULL ,
[Comentario] [varchar] (40) COLLATE Latin1_General_CI_AI NULL ,
[Cliente] [varchar] (15) COLLATE Latin1_General_CI_AI NULL ,
[Proveedor] [varchar] (15) COLLATE Latin1_General_CI_AI NULL ,
[Unidades] [float] NULL ,
[Precio] [float] NULL ,
[Importe] [float] NULL ,
[TipoMovimiento] [smallint] NULL ,
[Proyecto] [int] NOT NULL ,
[Departamento] [smallint] NULL ,
[Seccion] [smallint] NULL ,
[Pedido] [char] (10) COLLATE Latin1_General_CI_AI NULL
) ON [PRIMARY]
GO
CREATE CLUSTERED INDEX [Almacen] ON [dbo].[MovimientoStock]([Almacen],
[Articulo], [Fecha], [Documento], [TipoMovimiento]) WITH FILLFACTOR = 90 ON
[PRIMARY]
GO
ALTER TABLE [dbo].[MovimientoStock] ADD
CONSTRAINT [MovimientoStock_Departamento] DEFAULT (0) FOR [Departamento],
CONSTRAINT [MovimientoStock_Seccion] DEFAULT (0) FOR [Seccion],
CONSTRAINT [MovimientoStock_Proyecto] DEFAULT (0) FOR [Proyecto]
GO
CREATE INDEX [Proyecto] ON [dbo].[MovimientoStock]([Proyecto]) WITH
FILLFACTOR = 90 ON [PRIMARY]
GO
CREATE INDEX [Articulo] ON [dbo].[MovimientoStock]([Articulo]) WITH
FILLFACTOR = 90 ON [PRIMARY]
GO
CREATE INDEX [ArticuloFecha] ON [dbo].[MovimientoStock]([Articulo], [Fecha])
WITH FILLFACTOR = 90 ON [PRIMARY]
GO
CREATE INDEX [Cliente] ON [dbo].[MovimientoStock]([Cliente]) WITH FILLFACTOR
= 90 ON [PRIMARY]
GO
CREATE INDEX [Proveedor] ON [dbo].[MovimientoStock]([Proveedor]) WITH
FILLFACTOR = 90 ON [PRIMARY]
GO
ALTER TABLE [dbo].[MovimientoStock] ADD
CONSTRAINT [MovimientoStock_ClavesDeMovimiento] FOREIGN KEY
(
[TipoMovimiento]
) REFERENCES [dbo].[ClavesDeMovimiento] (
[TipoMovimiento]
)
GO
INSERT INTO [dbo].[MovimientoStock]
SELECT CAST(CodigoAlmacen AS integer) AS Almacen,
CAST(RTRIM(LTRIM(CodigoArticulo)) AS Varchar) AS Articulo,
CAST(Fecha AS datetime) AS Fecha,
CAST(RTRIM(LTRIM(Documento)) AS varchar) AS Documento,
CAST(Comentario AS Varchar) As Comentario,
CAST(RTRIM(LTRIM(CodigoCliente)) AS Varchar) AS Cliente,
CAST(RTRIM(LTRIM(CodigoProveedor)) AS Varchar) AS Proveedor,
CAST(Unidades AS Float),
CAST(Precio AS Float),
CAST(Importe AS Float),
CAST(TipoMovimiento AS Smallint),
***************Inicio de la chapuza
IF CodigoProyecto IS NULL THEN
BEGUIN
CAST('0' AS Integer) AS Proyecto
END
ELSE
CAST(CodigoProyecto AS Integer) AS Proyecto,
**************Fin de la chapuza
CAST('0' AS Smallint) AS Departamento,
CAST('0' AS Smallint) AS Seccion,
CAST('0' AS Char) AS Pedido
FROM CEPRENOR32...MovimientoStock MovimientoStockSA
WHERE (RTRIM(LTRIM(Documento)) <> 0) AND (Ejercicio > 2003) AND
(LTRIM(CodigoAlmacen) = '0001') AND (TipoMovimiento = 2)
GO
****************
Saludos Jondalar
NOTA 1. No me reces si me quieres escribir
NOTA 2. Por favor, las preguntas y comentarios en los grupos, así nos
beneficiamos todos.
Leer las respuestas