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 05-10-2018
dfarias dfarias is offline
Miembro
 
Registrado: abr 2007
Posts: 79
Poder: 18
dfarias Va por buen camino
Que tipo de consulta seria

Como puedo generar la siguiente consulta desde

la tabla que tiene estos dos campos:

COD DETALLE
1000 XXXXXXXXXXXXXX-----
1100 YYYYYYYYYYYYYYY---
1200 ZZZZZZZZZZZZZ----
2000 XXXXXXXXXXXXXX-----
2300 YYYYYYYYYYYYYYY---
2240 ZZZZZZZZZZZZZ----


quiero obtener el siguiente resultado generando la columna COD_MAESTRO

COD DETALLE COD_MAESTRO
1000 XXXXXXXXXXXXXX----- 1000
1100 YYYYYYYYYYYYYYY--- 1000
1200 ZZZZZZZZZZZZZ---- 1000
2000 XXXXXXXXXXXXXX----- 2000
2300 YYYYYYYYYYYYYYY-- 2000
2240 ZZZZZZZZZZZZZ---- 2000
Responder Con Cita
  #2  
Antiguo 05-10-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Por favor, lee nuestra guía de estilo, gracias.

A ver si aprendemos a poner títulos descriptivos.
A hacer preguntas claras.
A poner ejemplos que sirvan.
¿Tu teclado tampoco tiene signos de interrogación, ni letras acentuadas, comas, puntos, etc.?
Responder Con Cita
  #3  
Antiguo 05-10-2018
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.


Supongo que debería ser algo así:
Código SQL [-]
SELECT D.CODIGO, D.DETALLE, M.CODIGO
FROM DETALLE D
INNER JOIN MAESTRO M ON D.COD_MAESTRO = M.CODIGO

Te sugiero leer este enlace para ampliar mas sobre el tema.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 05-10-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Vaya, pues yo no había entendido que preguntaba nada de eso
Responder Con Cita
  #5  
Antiguo 05-10-2018
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Vaya, pues yo no había entendido que preguntaba nada de eso
Tal vez me aventuré y yo tampoco

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #6  
Antiguo 07-10-2018
dfarias dfarias is offline
Miembro
 
Registrado: abr 2007
Posts: 79
Poder: 18
dfarias Va por buen camino
La consulta es expresamente sobre la misma tabla. No existe un maestro por eso la pregunta de como se podria hacer.
Responder Con Cita
  #7  
Antiguo 08-10-2018
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Sería bueno conocer la definición de la tabla, al menos de los campos involucrados en la consulta.
Así como también una explicación detallada del resultado que deseas obtener, por ejemplo: "Deseo listar los campos A,B,C,... de la tabla MI_TABLA agrupados por el campo B y estos a su vez ordenados por el campo C."

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #8  
Antiguo 08-10-2018
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 20
ElDioni Va por buen camino
Código SQL [-]
SELECT Codigo, Detalle, CINT(Left([Codigo],1)+'000') as Maestro
FROM Tabla


Saludos
__________________
Confórmate con lo que tienes pero anhela lo que te falta.
Responder Con Cita
  #9  
Antiguo 08-10-2018
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
Cita:
Empezado por dfarias Ver Mensaje
La consulta es expresamente sobre la misma tabla. No existe un maestro por eso la pregunta de como se podria hacer.
Al parecer el compañero, en la misma tabla tiene un árbol y como no da muchas explicaciones parece ser que la base es el millar de cada código de producto, entonces podría ser válida la respuesta que da ElDioni


Cita:
Empezado por ElDioni Ver Mensaje
Código SQL [-]
SELECT Codigo, Detalle, CINT(Left([Codigo],1)+'000') as Maestro
FROM Tabla


Saludos
o podría ser válida la siguiente respuesta:

Cita:
Empezado por Casimiro Notevi Ver Mensaje
Vaya, pues yo no había entendido que preguntaba nada de eso
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #10  
Antiguo 08-10-2018
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 20
ElDioni Va por buen camino
:d :d :d :d :d :d
__________________
Confórmate con lo que tienes pero anhela lo que te falta.
Responder Con Cita
  #11  
Antiguo 08-10-2018
dfarias dfarias is offline
Miembro
 
Registrado: abr 2007
Posts: 79
Poder: 18
dfarias Va por buen camino
la tabla posee los siguientes campos pero el que importa para este dilema es el campo CODIGO (Interger)

fecha hora grupo codigo cantidad, etc,
20181001 2000 1 1000 0
20181001 2000 1 1125 5
20181001 2000 1 1999 2


20181001 1530 2 2300 0
20181001 1530 2 2350 3
20181001 1530 2 2390 2


20181005 1230 8 5000 0
20181005 1230 8 1234 2
20181005 1230 8 7890 4



El campo fecha, hora y grupo serian unicos para cada grupo


Lo que quiero conseguir es que la query devuelva lo siguiente


fecha hora grupo codigo cantidad, codigo_maestro, etc
20181001 2000 1 1000 0 1000
20181001 2000 1 1125 5 1000
20181001 2000 1 1999 2 1000


20181001 1530 2 2300 0 2300
20181001 1530 2 2350 2 2300
20181001 1530 2 2390 3 2300

20181005 1230 8 5000 0 5000
20181005 1230 8 1234 2 5000
20181005 1230 8 7890 4 5000
Responder Con Cita
  #12  
Antiguo 08-10-2018
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 20
ElDioni Va por buen camino
Pero, por favor, quieres explicar como coñ... quieres calcular el campo maestro para no dar palos de ciego todo el rato, no ves que no tenemos ni idea de donde sale ni como lo obtienes ni en que te fijas para sacarlo, queremos ayudarte pero no pones mucho de tu parte.


Saludos.
__________________
Confórmate con lo que tienes pero anhela lo que te falta.
Responder Con Cita
  #13  
Antiguo 08-10-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
A ver si nos traen del taller la bola de cristal
Responder Con Cita
  #14  
Antiguo 08-10-2018
dfarias dfarias is offline
Miembro
 
Registrado: abr 2007
Posts: 79
Poder: 18
dfarias Va por buen camino
Post

Vamos a ver. El campo CODIGO_MAESTRO es lo que quiero que la consulta me cree en la devolucion de la misma.

Como se puede ver en los registros de la tabla este campo CODIGO sera el que utilize para general el CODIGO_MAESTRO que sera aquel cullas filas tenga el campo grupo igual a 0.

Entonces quiero que este codigo se repita en el nuevo campo generado (CODIGO_MAESTRO) para todos los registros que formen parte del grupo que se obtine fomando la clave fecha-hora-grupo.




fecha hora grupo codigo cantidad, codigo_maestro, etc
20181001 2000 1 1000 0 1000
20181001 2000 1 1125 5 1000
20181001 2000 1 1999 2 1000



20181001 1530 2 2350 2 2300
20181001 1530 2 2390 3 2300
20181001 1530 2 2300 0 2300


20181005 1230 8 5000 0 5000
20181005 1230 8 1234 2 5000
20181005 1230 8 7890 4 5000
Responder Con Cita
  #15  
Antiguo 08-10-2018
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
Lo que quieres es representar un árbol en una consult. Te recomiendo estas lecturas:

How to represent a tree structure numerically in SQL Server

How to represent a data tree in SQL?
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #16  
Antiguo 08-10-2018
orodriguezca orodriguezca is offline
Miembro
 
Registrado: ene 2009
Posts: 221
Poder: 16
orodriguezca Va por buen camino
Yo entendí que lo que dfarias quiere es esto:

Código SQL [-]
select A.FECHA, A.HORA, A.GRUPO, A.CODIGO, A.CANTIDAD, B.GRUPO AS CODIGO_MAESTRO 
from TABLA A
inner join TABLA B 
    on B.FECHA = A.FECHA
   and B.HORA  = A.HORA 
   and B.GRUPO = A.GRUPO 
   and B.CANTIDAD = 0
Responder Con Cita
  #17  
Antiguo 08-10-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pues yo creo entender que... no lo he entendido todavía
Responder Con Cita
  #18  
Antiguo 12-10-2018
abelg abelg is offline
Miembro
 
Registrado: jul 2004
Posts: 50
Poder: 21
abelg Va por buen camino
No se si logre entender tu pedido, pero te dejo un demo en MS Sql Server.

Código SQL [-]
CREATE TABLE #Tablax (
  id int identity,
  fecha datetime,
  hora int,
  grupo int,
  codigo int,
  cantidad int
)

insert #Tablax(fecha, hora, grupo, codigo, cantidad) values('20181001', 2000, 1, 1000, 0)
insert #Tablax(fecha, hora, grupo, codigo, cantidad) values('20181001', 2000, 1, 1125, 5) 
insert #Tablax(fecha, hora, grupo, codigo, cantidad) values('20181001', 2000, 1, 1999, 2) 

insert #Tablax(fecha, hora, grupo, codigo, cantidad) values('20181001', 1530, 2, 2350, 2)
insert #Tablax(fecha, hora, grupo, codigo, cantidad) values('20181001', 1530, 2, 2390, 3)
insert #Tablax(fecha, hora, grupo, codigo, cantidad) values('20181001', 1530, 2, 2300, 0)

insert #Tablax(fecha, hora, grupo, codigo, cantidad) values('20181005', 1230, 8, 5000, 0)
insert #Tablax(fecha, hora, grupo, codigo, cantidad) values('20181005', 1230, 8, 1234, 2)
insert #Tablax(fecha, hora, grupo, codigo, cantidad) values('20181005', 1230, 8, 7890, 4)

Select rt.*, tmaster.codigo cod_master
From #Tablax rt
inner join (
      Select tt.Fecha, tt.hora, tt.grupo, tt.codigo 
      from #Tablax tt
      inner join (Select t.fecha, t.hora, t.grupo, min(t.cantidad) ctmin
            from #Tablax t
            group by t.fecha, t.hora, t.grupo) tm on tm.fecha = tt.fecha and 
                                tm.hora = tt.hora and 
                                tm.grupo = tt.grupo and 
                                tm.ctmin = tt.cantidad
            ) tmaster on tmaster.fecha = rt.fecha 
                  and tmaster.hora = rt.hora 
                  and tmaster.grupo = rt.grupo 
Order by rt.id


Drop table #Tablax

Hay una aproximacion a tu tabla (la tabla temporal creada).
creo que si no es necesario agrupar por hora se puede quitar del grupo.
Saludos
Responder Con Cita
  #19  
Antiguo 31-10-2018
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 20
ElDioni Va por buen camino
Hola dfarias, además de que no terminas de explicar correctamente nada, tampoco te has dignado a agradecer ni a comentar las ayudas propuestas por los compañeros del foro, escribe algo jomio, ¿te ha servido algo?, ¿has solucionado tu problema?, ¿has reventado con un martillo tu ordenador y por eso no puedes escribir?.


Saludos.
__________________
Confórmate con lo que tienes pero anhela lo que te falta.
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
Consulta tipo de datos en un Xml Leopard2 Varios 2 21-06-2016 21:27:40
como seria el ParamByName de una query pero del tipo fecha pjacob80 Firebird e Interbase 9 10-01-2013 01:42:01
Consulta con problemas por Tipo de IVA gluglu SQL 1 13-05-2012 12:04:19
Consulta con tipo desconocido Pskotler C++ Builder 2 28-08-2006 03:14:53
Tipo de consulta con el Group By @-Soft SQL 7 09-12-2003 19:31:04


La franja horaria es GMT +2. Ahora son las 02:05:03.


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