Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-03-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
Como armar una Linea de detalle en funcion a varios registros

buenos dias quiza el titulo no sea muy descriptivo pero me gustaria saber si alguien puede ayudarme con este tema

imaginemos que tengo esta informacion en una tabla (Base de datos MS Sql Server)

Cita:
001...631010.....1000.00....D.... V
001...631015........10.00....D.... N
001...401010.......190.00...D.... I
001...421010......1200.00...H.... P
me gustaria hacer un query que me muestre lo siguiente
Cita:
001.....1000.00.....10.00....190.00......1200.00
.............V..............N ..........I..............P
para quienes saben contabilidad (y estan en Peru.) es el armado de un registro de compras
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #2  
Antiguo 17-03-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
lo he solucionado de la siguiente manera

Código SQL [-]
Select M.Voucher, M.Documento, M.Anexo,
SUM(iif (M.AFC = 'V', M.n_imp,0)) As Valor,
SUM(iif (M.AFC = 'I', M.n_imp,0)) As IGV,
SUM(iif (M.AFC = 'N', M.n_imp,0)) As NoAfecto,
SUM(iif (M.AFC = 'P', M.n_imp,0)) As Total
 from tblmovimientocontable M 
where M.Periodo = '200912' and M.Libro = '22'
group by M.Voucher, M.documento, m.ANEXO

pero tengo un problema, me salen 2 lineas porque el campo ANEXO no se repite en todos los registros solo cuando AFC = P
me gustaria que se pudiera agrupar en una sola linea
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #3  
Antiguo 17-03-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Tal vez asi:
Código SQL [-]
Select DISTINCT M.Anexo, M.Voucher, M.Documento, 
SUM(iif (M.AFC = 'V', M.n_imp,0)) As Valor,
SUM(iif (M.AFC = 'I', M.n_imp,0)) As IGV,
SUM(iif (M.AFC = 'N', M.n_imp,0)) As NoAfecto,
SUM(iif (M.AFC = 'P', M.n_imp,0)) As Total
 from tblmovimientocontable M 
where M.Periodo = '200912' and M.Libro = '22'
group by M.Voucher, M.documento, m.ANEXO
Saludos
__________________
Siempre Novato
Responder Con Cita
  #4  
Antiguo 17-03-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
Cita:
Empezado por Caral Ver Mensaje
Hola
Tal vez asi:

Código SQL [-]
Select DISTINCT M.Anexo, M.Voucher, M.Documento,
SUM(iif (M.AFC = 'V', M.n_imp,0)) As Valor,
SUM(iif (M.AFC = 'I', M.n_imp,0)) As IGV,
SUM(iif (M.AFC = 'N', M.n_imp,0)) As NoAfecto,
SUM(iif (M.AFC = 'P', M.n_imp,0)) As Total
from tblmovimientocontable M
where M.Periodo = '200912' and M.Libro = '22'
group by M.Voucher, M.documento, m.ANEXO



Saludos

Gracias por la pronta respuesta...
haciendolo del modo que me dices, no me "captura" el campo Anexo
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #5  
Antiguo 17-03-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
DISTINCT hace eso, distingue, hace que se cree una sola linea en la consulta.
No se que campos son los necesarios ni como los manejas, de hecho en la consulta falta un campo que desconozco.
Se puede usar al igual que usaste Sum con IIF, max, min etc para que la consulta haga lo que se necesita.
Siento no poder ayudar.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #6  
Antiguo 18-03-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
lo solucione de esta manera
aver si alguien tiene alguna idea mejor

Código SQL [-]
select M.Periodo, M.LIbro, M.Voucher, M.ANEXO Into #Prueba
from tblmovimientocontable M where M.AFC ='P' and 
M.Periodo = :Periodo1 and M.Libro = :Libro1
 
Select M.Periodo, M.Libro, M.Voucher, M.Documento, P.Anexo,
SUM(Case when M.AFC = 'V' then M.n_imp else 0 end ) As Valor,
SUM(Case when M.AFC = 'I' then M.n_imp else 0 end) As IGV,
SUM(Case when M.AFC = 'N' then M.n_imp else 0 end) As NoAfecto,
SUM(case when M.AFC = 'P' then M.n_imp else 0 end ) As Total
 from tblmovimientocontable M 
Left Join #prueba P on M.Periodo = P.Periodo and M.Libro = P.Libro and P.Voucher = M.Voucher
where M.Periodo = :Periodo and M.Libro = :Libro
group by M.Periodo, M.Libro, M.Voucher, M.documento, P.ANEXO
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como hacer para que una funcion regrese varios valores jangel_ramirezm Varios 11 07-03-2008 22:14:49
Consulta de varios registros y como resultado varias columnas sierraja SQL 12 06-02-2008 12:04:22
Como puedo insertar varios registros con una instruccion de SQL marcoev MySQL 7 24-01-2007 22:54:00
como saber numero de linea, nombre de archivo,funcion por codigo orfeo OOP 0 30-07-2004 18:42:15
Como hacer un insert de varios registros fredy_boots SQL 2 25-11-2003 14:55:37


La franja horaria es GMT +2. Ahora son las 08:17:44.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi