SQL Server - SQL

 
Vista:

SQL

Publicado por Carolina Palma Reyes (8 intervenciones) el 19/12/2008 17:37:46
Como puedo colocar los resultados de una tabla en negativo?

por ejemplo tengo las tablas:

TOTAL= muestra el monto total de las facturas o notas de credito.
TIPODOC= me muestra dos tipos de documentos, 1=que es la factura y 2=que es la nota de credito

necesito que el total me lo arroje positivo cuando sea 1 (factura) y negativo cuando sea 2 (nota de credito)

¿como se debe hacer?
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

RE:SQL

Publicado por sergio (21 intervenciones) el 19/12/2008 19:45:16
case when tipodoc=1 else -1*campo then campo end as NomobreCampo
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:SQL

Publicado por Carolina Palma Reyes (8 intervenciones) el 22/12/2008 19:30:02
no me resulta, me dice que esle no corresponde, error de sintaxis., la siguiente es la consulta.
Select
docu_db.tipodoc as Codigo, numfact as Documento,Fecha,perso_db.nombre as vendedor,clien_db.razsoc as cliente,docde_db.descrip as producto,docde_db.cantidad,docde_db.precunit as precio,docde_db.descto as descto,Total=precunit*cantidad - precunit*cantidad*docde_db.descto/100,fechacre,fech1vta,feculvta,fechultcon,art_db.codigo
Where
(docu_db.tipodoc=1 or docu_db.tipodoc=4) and
fecha>=convert(datetime,'01/01/2008',103) and fecha<=convert(datetime,'31/12/2008',103) and
docu_db.numreg=docde_db.numrecor and docu_db.codvend=perso_db.numreg and docu_db.nrutfact=clien_db.nreguist and
docde_db.ncodart = art_db.nreguist
From
docu_db,docde_db,perso_db,clien_db, art_db
Order By
tipodoc
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:SQL

Publicado por Isaias (3308 intervenciones) el 22/12/2008 21:35:16
A simple vista, esta mal colocado el WHERE y el FROM

Select
docu_db.tipodoc as Codigo, numfact as Documento,Fecha,perso_db.nombre as vendedor,clien_db.razsoc as cliente,docde_db.descrip as producto,docde_db.cantidad,docde_db.precunit as precio,docde_db.descto as descto,Total=precunit*cantidad - precunit*cantidad*docde_db.descto/100,fechacre,fech1vta,feculvta,fechultcon,art_db.codigo
From docu_db,docde_db,perso_db,clien_db, art_db
Where
(docu_db.tipodoc=1 or docu_db.tipodoc=4) and
fecha>=convert(datetime,'01/01/2008',103) and fecha<=convert(datetime,'31/12/2008',103) and
docu_db.numreg=docde_db.numrecor and docu_db.codvend=perso_db.numreg and docu_db.nrutfact=clien_db.nreguist and
docde_db.ncodart = art_db.nreguist
Order By
tipodoc
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:SQL

Publicado por Carolina (8 intervenciones) el 23/12/2008 15:24:16
Esta bien, si lo que necesito saber es como coloco negativo cuando sea una nota de credito...
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:SQL

Publicado por Isaias (3308 intervenciones) el 24/12/2008 01:21:14
SELECT CASE WHEN tipodoc=1 THEN importe ELSE (importe*-1) END

Asi de sencillo.
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:SQL

Publicado por Carolina (8 intervenciones) el 23/12/2008 16:02:43
Esta bien, si lo que necesito saber es como coloco negativo cuando sea una nota de credito...
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