SQL - No creo que sea tan complicado para ustedes

 
Vista:

No creo que sea tan complicado para ustedes

Publicado por Nelson Miranda (16 intervenciones) el 23/04/2003 20:10:17
Estimados Compañeros:
Tengo las siguientes tablas:

Documentos es la tabla principal que hace referencia a las transacciones en Documentos-Objetos

La tabla Tipo-Documento categoriza a los Documentos y Acciones Tipo de Documento categoriza el Tipo de Documento de manera que solo debo crear un tipo de Documento y clasificarlo para que haga una acción específica.

Quiero hacer lo siguiente:

Deseo obtener una estadística por Tipo de Accion del Documento, es decir,

RESERVA PC/R PDirecto
50.00 100.00 0.00
0.00 0.00 10.00

Hice una compleja instrucción SQL para obtener estos datos, pero me hace lo siguiente:

Accion-1 Accion-2 Accion-3
0.00 0.00 0.00
50.00 50.00 50.00
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

No creo que sea tan complicado para ustedes Part 2

Publicado por Nelson Miranda (16 intervenciones) el 23/04/2003 20:11:33
La instrucción más o menos es así:

SELECT TOP 100 PERCENT
SUM(dbo.IIf3(dbo.[Documento-Tipo].Codigo_Tipo_Accion, 1, dbo.[Documentos-Objetos].Cantidad * dbo.[Documentos-Objetos].Precio, 0)) AS Reservas,
SUM(dbo.IIf3(dbo.[Documento-Tipo].Codigo_Tipo_Accion, 2, dbo.Documentos-Objetos].Cantidad * dbo.[Documentos-Objetos].Precio, 0)) AS [Pagos-Contra-Reservas],
SUM(dbo.IIf3(dbo.[Documento-Tipo].Codigo_Tipo_Accion, 3, dbo.[Documentos-Objetos].Cantidad * dbo.[Documentos-Objetos].Precio, 0)) AS [Pagos-Directos]

IIf3 es una función que hice para que hiciera lo mismo que IIf de Access
La función es la siguiente:

CREATE FUNCTION [IIf3] (@campo varchar, @valor varchar, @v numeric, @f numeric)
RETURNS numeric AS
BEGIN
If(@campo = @valor)
RETURN @v
RETURN @f
END

No sé que estoy haciendo mal, lo que sé es que en Access esta misma instrucción me funciona bien, claro que utilizo el IIf.
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

RE:No creo que sea tan complicado para ustedes Par

Publicado por Isaías Islas (5072 intervenciones) el 23/04/2003 22:56:04
Hola
Olvide la funcion y mejor hagalo con un CASE

SELECT SUM(CASE MyCol WHEN = 1 THEN @V1 ELSE @V2 END) AS COLUMNAx
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