Ver Mensaje Individual
  #7 (permalink)  
Antiguo 18/03/2015, 12:03
Avatar de Libras
Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Consulta en SQL

Código SQL:
Ver original
  1. CREATE TABLE operacion
  2. (
  3. id INT,
  4. nombre VARCHAR(20),
  5. correlativo INT
  6. )
  7.  
  8. INSERT INTO operacion VALUES (1, 'CAMISA', 3)
  9. INSERT INTO operacion VALUES (2, 'PANTALON', 4)
  10.  
  11.  
  12. CREATE TABLE detalle
  13. (
  14. id INT,
  15. op INT,
  16. correlativo INT
  17. )
  18.  
  19. INSERT INTO detalle VALUES (1, 444, 3)
  20. INSERT INTO detalle VALUES (2, 445, 3)
  21.  
  22.  
  23.  
  24.  
  25.  
  26. ALTER FUNCTION VALUE2 (@id INT)
  27. RETURNS VARCHAR(MAX)
  28. AS
  29. BEGIN
  30.     DECLARE @DepartmentName VARCHAR(1000)
  31.     SELECT @DepartmentName = COALESCE(@DepartmentName,'') + CONVERT(VARCHAR(20),op) + ','  
  32.     FROM detalle WHERE correlativo=@id
  33.     RETURN @DepartmentName
  34. END
  35.  
  36. SELECT t1.id,nombre,(SELECT dbo.VALUE2(t1.correlativo)) FROM operacion AS t1
  37. LEFT JOIN detalle AS t2 ON (t1.correlativo=t2.correlativo)
  38. GROUP BY t1.id,t1.nombre,t1.correlativo

Resultado:

1 CAMISA 444,445,
2 PANTALON NULL
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me