Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-04-2010
Avatar de microbiano
microbiano microbiano is offline
Miembro
 
Registrado: sep 2008
Ubicación: Mexico D.F
Posts: 349
Poder: 18
microbiano Va por buen camino
Unhappy ayuda con la siguiente consulta

hola quiero ver si alguien me puede ayudar con el siguiente problema
tengo las siguentesta tablas:

sap_mrecibos.- la cual es el maestro de los recibos que genere. y l aotra tabla
sap_drecibo.- en la cual guardo el registro del detalle de mis recibos. (adjunto archivos winzip con tablas y datos que tengo).

bien lo que quiero hacer es la siguente consulta que se supone tendria que ser una a muchos. la consulta es la siguiente

Código SQL [-]
SELECT     dbo.SAP_MRECIBO.id_recibo, dbo.SAP_MRECIBO.folio, 
dbo.SAP_MRECIBO.mes, dbo.SAP_MRECIBO.anio, dbo.SAP_MRECIBO.contrato, 
                      dbo.SAP_MRECIBO.fecha_pago, dbo.SAP_MRECIBO.usuario, 
dbo.SAP_MRECIBO.sub_total, dbo.SAP_MRECIBO.descuento, 
                      dbo.SAP_MRECIBO.total_neto, dbo.SAP_MRECIBO.total,
 dbo.SAP_DRECIBO.servicio, dbo.SAP_DRECIBO.importe
FROM         dbo.SAP_MRECIBO LEFT OUTER JOIN
                      dbo.SAP_DRECIBO ON dbo.SAP_MRECIBO.mes = dbo.SAP_DRECIBO.mes AND
 dbo.SAP_MRECIBO.anio = dbo.SAP_DRECIBO.anio AND 
                      dbo.SAP_MRECIBO.contrato = dbo.SAP_DRECIBO.contrato
WHERE     (dbo.SAP_MRECIBO.mes = 1) AND (dbo.SAP_MRECIBO.anio = 2009)

se supone me tendria que considerar un registro de la tabla sap_mrecibo y los 3 registros que tengo en la tabla sap_drecibo, sin embargo no lo hace alguien me podria ayudar o decirme en que estoy mal al hacer mi consulta.

Última edición por microbiano fecha: 15-04-2010 a las 19:56:28.
Responder Con Cita
  #2  
Antiguo 10-04-2010
Avatar de microbiano
microbiano microbiano is offline
Miembro
 
Registrado: sep 2008
Ubicación: Mexico D.F
Posts: 349
Poder: 18
microbiano Va por buen camino
Wink ayuda

aun no consigo resolver el problema
Responder Con Cita
  #3  
Antiguo 10-04-2010
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.676
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Cita:
Empezado por microbiano Ver Mensaje
[..](adjunto archivos winzip con tablas y datos que tengo). [..]
Ahí sólo hay un .xls
Responder Con Cita
  #4  
Antiguo 11-04-2010
Avatar de microbiano
microbiano microbiano is offline
Miembro
 
Registrado: sep 2008
Ubicación: Mexico D.F
Posts: 349
Poder: 18
microbiano Va por buen camino
Unhappy exacto

el archivo xls son las tablas que tengo en el sistema y aqui en el foro puse al consulta que como te digo tendria que ser de unos a muchos pero no me muestra nada espero me puedan ayudar.

esta es la consulta:
Código Delphi [-]
SELECT     SAP_MRECIBO.anio, SAP_MRECIBO.mes,
 SAP_MRECIBO.contrato, SAP_MRECIBO.sub_total, SAP_MRECIBO.descuento,
 SAP_MRECIBO.total_neto, 
                      SAP_DRECIBO.servicio, SAP_DRECIBO.importe
FROM         SAP_MRECIBO LEFT OUTER JOIN
                      SAP_DRECIBO ON SAP_MRECIBO.contrato = SAP_DRECIBO.contrato
 AND SAP_MRECIBO.mes = SAP_DRECIBO.mes AND 
                      SAP_MRECIBO.anio = SAP_DRECIBO.anio
WHERE     (SAP_MRECIBO.mes = 1) AND (SAP_MRECIBO.anio = 2009)

Última edición por microbiano fecha: 11-04-2010 a las 05:26:47. Razón: ingresar sql
Responder Con Cita
  #5  
Antiguo 13-04-2010
Avatar de microbiano
microbiano microbiano is offline
Miembro
 
Registrado: sep 2008
Ubicación: Mexico D.F
Posts: 349
Poder: 18
microbiano Va por buen camino
planteo mi consulta de otra manera

tengo las siguientes tablas

mcontratos (correspondiente al maestro de recibos)de la siguiente forma

Código SQL [-]
CREATE TABLE [dbo].[mcontratos] (
    [ID_RECIBO] [int] IDENTITY (1, 1) NOT FOR REPLICATION  NOT NULL ,
    [FOLIO] [numeric](18, 0) NULL ,
    [MES] [numeric](18, 0) NULL ,
    [ANIO] [numeric](18, 0) NULL ,
    [NO_CONTRATO] [nvarchar] (30) COLLATE Traditional_Spanish_CI_AS NULL ,
    [FECHA_PAGO] [smalldatetime] NULL ,
    [USUARIO] [numeric](16, 0) NULL ,
    [DESCUENTO] [numeric](6, 2) NULL ,
    [SUBTOTAL] [numeric](16, 2) NULL ,
    [TOTAL] [numeric](16, 2) NULL ,
    [NO_LICITACION] [nvarchar] (15) COLLATE Traditional_Spanish_CI_AS NULL ,
    [NUM_PROVEEDOR] [nvarchar] (8) COLLATE Traditional_Spanish_CI_AS NULL ,
    [FECHA_FIRMA] [smalldatetime] NULL ,
    [FECHA_TERMINACION] [smalldatetime] NULL ,
    [RFC_PROVEEDOR] [nvarchar] (15) COLLATE Traditional_Spanish_CI_AS NULL 
) ON [PRIMARY]
GO

y la tabla drecibos(correspondiente al detalle de recibos) de la siguiente forma

Código SQL [-]
CREATE TABLE [dbo].[dcontratos] (
    [ID_RECIBO] [int] IDENTITY (1, 1) NOT NULL ,
    [FOLIO] [numeric](18, 0) NULL ,
    [MES] [numeric](18, 0) NULL ,
    [ANIO] [numeric](18, 0) NULL ,
    [NO_CONTRATO] [nvarchar] (30) COLLATE Traditional_Spanish_CI_AS NULL ,
    [GPO] [nvarchar] (3) COLLATE Traditional_Spanish_CI_AS NULL ,
    [GEN] [nvarchar] (3) COLLATE Traditional_Spanish_CI_AS NULL ,
    [ESP] [nvarchar] (4) COLLATE Traditional_Spanish_CI_AS NULL ,
    [DIF] [nvarchar] (2) COLLATE Traditional_Spanish_CI_AS NULL ,
    [VAR] [nvarchar] (2) COLLATE Traditional_Spanish_CI_AS NULL ,
    [CONCEPTO] [nvarchar] (50) COLLATE Traditional_Spanish_CI_AS NULL ,
    [CANT_MAX] [numeric](10, 0) NULL ,
    [CANT_MIN] [numeric](10, 0) NULL ,
    [PRECIO_CLAVE] [float] NULL ,
    [DESCUENTO] [float] NULL ,
    [IMP_PENA_MAX] [numeric](16, 2) NULL ,
    [PRECIO_NETO] [float] NULL 
) ON [PRIMARY]
GO

ahora bien genero la siguiente consulta
Código SQL [-]
SELECT     dbo.mcontratos.ID_RECIBO, dbo.mcontratos.FOLIO, dbo.mcontratos.MES, dbo.mcontratos.ANIO,
 dbo.mcontratos.NO_CONTRATO, dbo.mcontratos.FECHA_PAGO, 
                      dbo.mcontratos.USUARIO, dbo.mcontratos.DESCUENTO, 
dbo.mcontratos.SUBTOTAL, dbo.mcontratos.TOTAL, dbo.dcontratos.CONCEPTO, 
                      dbo.dcontratos.PRECIO_CLAVE
FROM         dbo.mcontratos LEFT OUTER JOIN
                      dbo.dcontratos ON dbo.mcontratos.FOLIO = dbo.dcontratos.FOLIO 
AND dbo.mcontratos.MES = dbo.dcontratos.MES AND 
                      dbo.mcontratos.ANIO = dbo.dcontratos.ANIO

hasta aqui ningun problema pero cuando trato de agregar el campo de no_contrato y ponerle una condicion ya no me muestra el resultado.

esta es la consulta que ejecuto y no me regresa resultado alguien me podria ayudar
Código SQL [-]
SELECT     dbo.mccontratos.ID_RECIBO, dbo.mccontratos.FOLIO, dbo.mccontratos.MES, dbo.mccontratos.ANIO, dbo.mccontratos.NO_CONTRATO, dbo.mccontratos.FECHA_PAGO, 
                      dbo.mccontratos.USUARIO, dbo.mccontratos.DESCUENTO, dbo.mccontratos.SUBTOTAL, dbo.mccontratos.TOTAL, dbo.adq_clave_contrato.CONCEPTO, 
                      dbo.adq_clave_contrato.PRECIO_CLAVE
FROM         dbo.mccontratos LEFT OUTER JOIN
                      dbo.adq_clave_contrato ON dbo.mccontratos.NO_CONTRATO = dbo.adq_clave_contrato.NO_CONTRATO AND 
                      dbo.mccontratos.FOLIO = dbo.adq_clave_contrato.FOLIO AND dbo.mccontratos.MES = dbo.adq_clave_contrato.MES AND 
                      dbo.mccontratos.ANIO = dbo.adq_clave_contrato.ANIO
WHERE     (dbo.mccontratos.MES = 1) AND (dbo.mccontratos.ANIO = 2009) AND (dbo.mccontratos.FOLIO = 1) AND (dbo.mccontratos.NO_CONTRATO = N'SAP-C2009111104')
Responder Con Cita
  #6  
Antiguo 13-04-2010
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.676
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Así a simple vista sólo se me ocurre que pongas entre paréntesis todo el 'join'.
Y existen datos para que devuelva algo con esos parámetros?

Código SQL [-]
SELECT     dbo.mccontratos.ID_RECIBO, dbo.mccontratos.FOLIO, dbo.mccontratos.MES, dbo.mccontratos.ANIO, dbo.mccontratos.NO_CONTRATO, dbo.mccontratos.FECHA_PAGO, 
                      dbo.mccontratos.USUARIO, dbo.mccontratos.DESCUENTO, dbo.mccontratos.SUBTOTAL, dbo.mccontratos.TOTAL, dbo.adq_clave_contrato.CONCEPTO, 
                      dbo.adq_clave_contrato.PRECIO_CLAVE
FROM         dbo.mccontratos LEFT OUTER JOIN
         (
                      dbo.adq_clave_contrato ON dbo.mccontratos.NO_CONTRATO = dbo.adq_clave_contrato.NO_CONTRATO AND 
                      dbo.mccontratos.FOLIO = dbo.adq_clave_contrato.FOLIO AND dbo.mccontratos.MES = dbo.adq_clave_contrato.MES AND 

                      dbo.mccontratos.ANIO = dbo.adq_clave_contrato.ANIO
          )
WHERE     (dbo.mccontratos.MES = 1) 
AND       (dbo.mccontratos.ANIO = 2009) 
AND       (dbo.mccontratos.FOLIO = 1) 
AND       (dbo.mccontratos.NO_CONTRATO = 'SAP-C2009111104')
Responder Con Cita
  #7  
Antiguo 13-04-2010
Avatar de microbiano
microbiano microbiano is offline
Miembro
 
Registrado: sep 2008
Ubicación: Mexico D.F
Posts: 349
Poder: 18
microbiano Va por buen camino
Gracias Casimiro

los datos que tengo en mi tabla son los que agregue al inicio en el archivo de excel.

y en efecto existen datos para que me devuela una consulta


tendrias alguna idea del por que?
o podrias pasarme un ejemplo de maestro detalle.

gracias por tomarte la molestia de contestar desde mexico gracias
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Ayuda consulta sargento elias SQL 2 11-03-2009 16:48:49
Como Hacer La Siguiente Consulta... rgstuamigo MySQL 2 11-09-2008 22:19:33
Buscar siguiente SQL paladincubano SQL 4 12-03-2008 20:06:34
sabel el siguiente tab? raudelink Varios 2 26-04-2005 01:40:28
encontrar el siguiente en ado jzginez Conexión con bases de datos 1 21-05-2004 11:42:08


La franja horaria es GMT +2. Ahora son las 08:11:04.


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