Newsgrupos.com  

Retroceder   Newsgrupos.com > Forum > Newsgroup microsoft.public.es.* 1 Foro > Newsgroup microsoft.public.es.sqlserver
Registrarse Preguntas Frecuentes Lista de Foreros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




Respuesta
 
LinkBack Herramientas Desplegado
  #1 (permalink)  
Antiguo 14-01-2008, 20:34:01
ryuyi
 
Mensajes: n/a
Predeterminado Consulta Maestro detalle

Tengo un problema tengo los siguientes datos como por ejemplo
Tabla Encabezado
Factura Nombre Telefono
100 Jose Flores 3245455
Tabla Detalle
Factura Var1 Total1 Var2 Total2 Var3 Total3
100 I 10 X 12 Z 16

Si hago una relacion de datos seria asi
SELECT e.Factura,Nombre,Telefono,
Var1,Total1,Var2,Total2,Var3,Total3
FROM encabezado e, detalle d
WHERE e.Factura=d.Factura

AL hacer esto me mostraria de la siguiente forma

Factura Nombre Telefono Var1 Total1 Var2 Total2 Var3
Total3
100 Jose Flores 3245455 I 10 X 12
Z 16

Pero me gustaria que me muestre de la siguiente manera, alguna idea de como
hacer una consulta que me muestre de la siguiente forma. gracias

Factura Nombre Telefono Varx Totalx
100 Jose Flores 3245455 I 10
X 12
Z 16
Responder Con Cita
Alt Today
Advertising
Google Adsense
 
This advertising will not be shown
in this way to registered members.
Register your free account today
and become a member on
Newsgrupos.com
Standard Sponsored Links

  #2 (permalink)  
Antiguo 15-01-2008, 01:37:01
Alejandro Mesa
 
Mensajes: n/a
Predeterminado RE: Consulta Maestro detalle

ryuyi,

Debes normalizar la tabla de detalle.

declare ***Encabezado TABLE (
Factura VARCHAR(15) NOT NULL,
Nombre VARCHAR(50),
Telefono CHAR(7)
)

DECLARE ***Detalle TABLE (
Factura VARCHAR(15) NOT NULL,
Var1 CHAR(1),
Total1 INT,
Var2 CHAR(1),
Total2 INT,
Var3 CHAR(1),
Total3 INT
)

INSERT INTO ***Encabezado VALUES(100, 'Jose Flores', '3245455')
INSERT INTO ***Detalle VALUES(100, 'I', 10, 'X', 12, 'Z', 16)

SELECT
e.Factura,
e.Nombre,
e.Telefono,
t2.Varx,
t2.Totalx
FROM
***Encabezado AS e
INNER JOIN
(
SELECT
d.Factura,
CASE t1.c1
WHEN 1 THEN Var1
WHEN 2 THEN Var2
WHEN 3 THEN Var3
END AS Varx,
CASE t1.c1
WHEN 1 THEN Total1
WHEN 2 THEN Total2
WHEN 3 THEN Total3
END AS Totalx
FROM
***Detalle AS d
CROSS JOIN
(
SELECT 1 AS c1
UNION ALL
SELECT 2
UNION ALL
SELECT 3
) AS t1
) AS t2
ON e.Factura = t2.Factura

-- 2005
;WITH unpvt_var
AS
(
SELECT
Factura,
Varx,
CASE [Var]
WHEN 'Var1' THEN 1
WHEN 'Var2' THEN 2
WHEN 'Var3' THEN 3
END AS position
FROM
***Detalle
UNPIVOT
(
[Varx]
FOR [Var] IN (Var1, Var2, Var3)
) AS unpvt
),
unpvt_total
AS
(
SELECT
Factura,
Totalx,
CASE [Total]
WHEN 'Total1' THEN 1
WHEN 'Total2' THEN 2
WHEN 'Total3' THEN 3
END AS position
FROM
***Detalle
UNPIVOT
(
[Totalx]
FOR [Total] IN (Total1, Total2, Total3)
) AS unpvt
)
SELECT
e.Factura,
e.Nombre,
e.Telefono,
t1.Varx,
t2.Totalx
FROM
***Encabezado AS e
INNER JOIN
unpvt_var AS t1
ON e.Factura = t1.Factura
INNER JOIN
unpvt_total AS t2
ON t2.Factura = t1.Factura
AND t2.position = t1.position
GO


AMB


"ryuyi" wrote:

> Tengo un problema tengo los siguientes datos como por ejemplo
> Tabla Encabezado
> Factura Nombre Telefono
> 100 Jose Flores 3245455
> Tabla Detalle
> Factura Var1 Total1 Var2 Total2 Var3 Total3
> 100 I 10 X 12 Z 16
>
> Si hago una relacion de datos seria asi
> SELECT e.Factura,Nombre,Telefono,
> Var1,Total1,Var2,Total2,Var3,Total3
> FROM encabezado e, detalle d
> WHERE e.Factura=d.Factura
>
> AL hacer esto me mostraria de la siguiente forma
>
> Factura Nombre Telefono Var1 Total1 Var2 Total2 Var3
> Total3
> 100 Jose Flores 3245455 I 10 X 12
> Z 16
>
> Pero me gustaria que me muestre de la siguiente manera, alguna idea de como
> hacer una consulta que me muestre de la siguiente forma. gracias
>
> Factura Nombre Telefono Varx Totalx
> 100 Jose Flores 3245455 I 10
> X 12
> Z 16

Responder Con Cita
  #3 (permalink)  
Antiguo 15-01-2008, 20:37:04
ryuyi
 
Mensajes: n/a
Predeterminado RE: Consulta Maestro detalle

Alejandro primeramente darte las gracias el ejemplo que me diste es muy
bueno, pero que tendria que modificar en tu consulta para que el resultado me
muestre de la siguiente forma te copio el codigo.

DATOS DE EJEMPLO
> > Tabla Encabezado
> > Factura Nombre Telefono
> > 100 Jose Flores 3245455
> > Tabla Detalle
> > Factura Nombre guia origen Var1 Total1 Var2 Total2 Var3 Total3
> > 100 Jose Flores 2200021 CBB I 10 X 12 Z 16

<< 100 Jose Flores 3352445 SRZ E 30 O
12 P 22
Esas eran las tablas
SELECT
e.Factura,
e.Nombre,
t2.guia,
t2.origen,
t2.Varx, --Variable donde almaceno el valor de x
t2.Totalx,--Variable donde almaceno el valor de mx

FROM
encabezado AS e
INNER JOIN
(
SELECT
d.Factura,d.guia,d.origen
CASE t1.c1
WHEN 1 THEN x1
WHEN 2 THEN x2
WHEN 3 THEN x3
END AS Varx,
CASE t1.c1
WHEN 1 THEN mx1
WHEN 2 THEN mx2
WHEN 3 THEN mx3
END AS Totalx
FROM
detalle AS d
CROSS JOIN
(
SELECT 1 AS c1
UNION ALL
SELECT 2
UNION ALL
SELECT 3

) AS t1 ----
) AS t2
ON e.Factura = t2.Factura

Al hacer la consulta obtengo esto

Factura Nombre guia origen varx Totalx
100 Jose Flores 2200021 CBB I 10
100 Jose Flores 2200021 CBB X 12
100 Jose Flores 2200021 CBB Z 16
100 Jose Flores 3352445 SRZ E 30
100 Jose Flores 3352445 SRZ O 12
100 Jose Flores 3352445 SRZ P 22


y Me gustaria que me muestre la consulta de la siguiente forma

Factura Nombre guia origen varx Totalx
100 Jose Flores 2200021 CBB I 10
100 ---------- ---- X 12
100 ---------- ---- Z 16
100 3352445 SRZ E 30
100 ---------- ---- O 12
100 ---------- ---- P 22

Gracias.





"Alejandro Mesa" wrote:

> ryuyi,
>
> Debes normalizar la tabla de detalle.
>
> declare ***Encabezado TABLE (
> Factura VARCHAR(15) NOT NULL,
> Nombre VARCHAR(50),
> Telefono CHAR(7)
> )
>
> DECLARE ***Detalle TABLE (
> Factura VARCHAR(15) NOT NULL,
> Var1 CHAR(1),
> Total1 INT,
> Var2 CHAR(1),
> Total2 INT,
> Var3 CHAR(1),
> Total3 INT
> )
>
> INSERT INTO ***Encabezado VALUES(100, 'Jose Flores', '3245455')
> INSERT INTO ***Detalle VALUES(100, 'I', 10, 'X', 12, 'Z', 16)
>
> SELECT
> e.Factura,
> e.Nombre,
> e.Telefono,
> t2.Varx,
> t2.Totalx
> FROM
> ***Encabezado AS e
> INNER JOIN
> (
> SELECT
> d.Factura,
> CASE t1.c1
> WHEN 1 THEN Var1
> WHEN 2 THEN Var2
> WHEN 3 THEN Var3
> END AS Varx,
> CASE t1.c1
> WHEN 1 THEN Total1
> WHEN 2 THEN Total2
> WHEN 3 THEN Total3
> END AS Totalx
> FROM
> ***Detalle AS d
> CROSS JOIN
> (
> SELECT 1 AS c1
> UNION ALL
> SELECT 2
> UNION ALL
> SELECT 3
> ) AS t1
> ) AS t2
> ON e.Factura = t2.Factura
>
> -- 2005
> ;WITH unpvt_var
> AS
> (
> SELECT
> Factura,
> Varx,
> CASE [Var]
> WHEN 'Var1' THEN 1
> WHEN 'Var2' THEN 2
> WHEN 'Var3' THEN 3
> END AS position
> FROM
> ***Detalle
> UNPIVOT
> (
> [Varx]
> FOR [Var] IN (Var1, Var2, Var3)
> ) AS unpvt
> ),
> unpvt_total
> AS
> (
> SELECT
> Factura,
> Totalx,
> CASE [Total]
> WHEN 'Total1' THEN 1
> WHEN 'Total2' THEN 2
> WHEN 'Total3' THEN 3
> END AS position
> FROM
> ***Detalle
> UNPIVOT
> (
> [Totalx]
> FOR [Total] IN (Total1, Total2, Total3)
> ) AS unpvt
> )
> SELECT
> e.Factura,
> e.Nombre,
> e.Telefono,
> t1.Varx,
> t2.Totalx
> FROM
> ***Encabezado AS e
> INNER JOIN
> unpvt_var AS t1
> ON e.Factura = t1.Factura
> INNER JOIN
> unpvt_total AS t2
> ON t2.Factura = t1.Factura
> AND t2.position = t1.position
> GO
>
>
> AMB
>
>
> "ryuyi" wrote:
>
> > Tengo un problema tengo los siguientes datos como por ejemplo
> > Tabla Encabezado
> > Factura Nombre Telefono
> > 100 Jose Flores 3245455
> > Tabla Detalle
> > Factura Var1 Total1 Var2 Total2 Var3 Total3
> > 100 I 10 X 12 Z 16
> >
> > Si hago una relacion de datos seria asi
> > SELECT e.Factura,Nombre,Telefono,
> > Var1,Total1,Var2,Total2,Var3,Total3
> > FROM encabezado e, detalle d
> > WHERE e.Factura=d.Factura
> >
> > AL hacer esto me mostraria de la siguiente forma
> >
> > Factura Nombre Telefono Var1 Total1 Var2 Total2 Var3
> > Total3
> > 100 Jose Flores 3245455 I 10 X 12
> > Z 16
> >
> > Pero me gustaria que me muestre de la siguiente manera, alguna idea de como
> > hacer una consulta que me muestre de la siguiente forma. gracias
> >
> > Factura Nombre Telefono Varx Totalx
> > 100 Jose Flores 3245455 I 10
> > X 12
> > Z 16

Responder Con Cita
  #4 (permalink)  
Antiguo 16-01-2008, 21:44:00
Alejandro Mesa
 
Mensajes: n/a
Predeterminado RE: Consulta Maestro detalle

ryuyi,

Te recomiendo que eso lo hagas en la aplicacion cliente o herramienta de
reportes que uses. Por ejemplo, si usas Reporting Services, tienes una
propiedad llamada "Hide duplicates" para mostrar solo la primera instancia de
un valor en un text box. Usa el motor SQL para seleccionar data, no para
formatearla.

AMB

"ryuyi" wrote:

> Alejandro primeramente darte las gracias el ejemplo que me diste es muy
> bueno, pero que tendria que modificar en tu consulta para que el resultado me
> muestre de la siguiente forma te copio el codigo.
>
> DATOS DE EJEMPLO
> > > Tabla Encabezado
> > > Factura Nombre Telefono
> > > 100 Jose Flores 3245455
> > > Tabla Detalle
> > > Factura Nombre guia origen Var1 Total1 Var2 Total2 Var3 Total3
> > > 100 Jose Flores 2200021 CBB I 10 X 12 Z 16

> << 100 Jose Flores 3352445 SRZ E 30 O
> 12 P 22
> Esas eran las tablas
> SELECT
> e.Factura,
> e.Nombre,
> t2.guia,
> t2.origen,
> t2.Varx, --Variable donde almaceno el valor de x
> t2.Totalx,--Variable donde almaceno el valor de mx
>
> FROM
> encabezado AS e
> INNER JOIN
> (
> SELECT
> d.Factura,d.guia,d.origen
> CASE t1.c1
> WHEN 1 THEN x1
> WHEN 2 THEN x2
> WHEN 3 THEN x3
> END AS Varx,
> CASE t1.c1
> WHEN 1 THEN mx1
> WHEN 2 THEN mx2
> WHEN 3 THEN mx3
> END AS Totalx
> FROM
> detalle AS d
> CROSS JOIN
> (
> SELECT 1 AS c1
> UNION ALL
> SELECT 2
> UNION ALL
> SELECT 3
>
> ) AS t1 ----
> ) AS t2
> ON e.Factura = t2.Factura
>
> Al hacer la consulta obtengo esto
>
> Factura Nombre guia origen varx Totalx
> 100 Jose Flores 2200021 CBB I 10
> 100 Jose Flores 2200021 CBB X 12
> 100 Jose Flores 2200021 CBB Z 16
> 100 Jose Flores 3352445 SRZ E 30
> 100 Jose Flores 3352445 SRZ O 12
> 100 Jose Flores 3352445 SRZ P 22
>
>
> y Me gustaria que me muestre la consulta de la siguiente forma
>
> Factura Nombre guia origen varx Totalx
> 100 Jose Flores 2200021 CBB I 10
> 100 ---------- ---- X 12
> 100 ---------- ---- Z 16
> 100 3352445 SRZ E 30
> 100 ---------- ---- O 12
> 100 ---------- ---- P 22
>
> Gracias.
>
>
>
>
>
> "Alejandro Mesa" wrote:
>
> > ryuyi,
> >
> > Debes normalizar la tabla de detalle.
> >
> > declare ***Encabezado TABLE (
> > Factura VARCHAR(15) NOT NULL,
> > Nombre VARCHAR(50),
> > Telefono CHAR(7)
> > )
> >
> > DECLARE ***Detalle TABLE (
> > Factura VARCHAR(15) NOT NULL,
> > Var1 CHAR(1),
> > Total1 INT,
> > Var2 CHAR(1),
> > Total2 INT,
> > Var3 CHAR(1),
> > Total3 INT
> > )
> >
> > INSERT INTO ***Encabezado VALUES(100, 'Jose Flores', '3245455')
> > INSERT INTO ***Detalle VALUES(100, 'I', 10, 'X', 12, 'Z', 16)
> >
> > SELECT
> > e.Factura,
> > e.Nombre,
> > e.Telefono,
> > t2.Varx,
> > t2.Totalx
> > FROM
> > ***Encabezado AS e
> > INNER JOIN
> > (
> > SELECT
> > d.Factura,
> > CASE t1.c1
> > WHEN 1 THEN Var1
> > WHEN 2 THEN Var2
> > WHEN 3 THEN Var3
> > END AS Varx,
> > CASE t1.c1
> > WHEN 1 THEN Total1
> > WHEN 2 THEN Total2
> > WHEN 3 THEN Total3
> > END AS Totalx
> > FROM
> > ***Detalle AS d
> > CROSS JOIN
> > (
> > SELECT 1 AS c1
> > UNION ALL
> > SELECT 2
> > UNION ALL
> > SELECT 3
> > ) AS t1
> > ) AS t2
> > ON e.Factura = t2.Factura
> >
> > -- 2005
> > ;WITH unpvt_var
> > AS
> > (
> > SELECT
> > Factura,
> > Varx,
> > CASE [Var]
> > WHEN 'Var1' THEN 1
> > WHEN 'Var2' THEN 2
> > WHEN 'Var3' THEN 3
> > END AS position
> > FROM
> > ***Detalle
> > UNPIVOT
> > (
> > [Varx]
> > FOR [Var] IN (Var1, Var2, Var3)
> > ) AS unpvt
> > ),
> > unpvt_total
> > AS
> > (
> > SELECT
> > Factura,
> > Totalx,
> > CASE [Total]
> > WHEN 'Total1' THEN 1
> > WHEN 'Total2' THEN 2
> > WHEN 'Total3' THEN 3
> > END AS position
> > FROM
> > ***Detalle
> > UNPIVOT
> > (
> > [Totalx]
> > FOR [Total] IN (Total1, Total2, Total3)
> > ) AS unpvt
> > )
> > SELECT
> > e.Factura,
> > e.Nombre,
> > e.Telefono,
> > t1.Varx,
> > t2.Totalx
> > FROM
> > ***Encabezado AS e
> > INNER JOIN
> > unpvt_var AS t1
> > ON e.Factura = t1.Factura
> > INNER JOIN
> > unpvt_total AS t2
> > ON t2.Factura = t1.Factura
> > AND t2.position = t1.position
> > GO
> >
> >
> > AMB
> >
> >
> > "ryuyi" wrote:
> >
> > > Tengo un problema tengo los siguientes datos como por ejemplo
> > > Tabla Encabezado
> > > Factura Nombre Telefono
> > > 100 Jose Flores 3245455
> > > Tabla Detalle
> > > Factura Var1 Total1 Var2 Total2 Var3 Total3
> > > 100 I 10 X 12 Z 16
> > >
> > > Si hago una relacion de datos seria asi
> > > SELECT e.Factura,Nombre,Telefono,
> > > Var1,Total1,Var2,Total2,Var3,Total3
> > > FROM encabezado e, detalle d
> > > WHERE e.Factura=d.Factura
> > >
> > > AL hacer esto me mostraria de la siguiente forma
> > >
> > > Factura Nombre Telefono Var1 Total1 Var2 Total2 Var3
> > > Total3
> > > 100 Jose Flores 3245455 I 10 X 12
> > > Z 16
> > >
> > > Pero me gustaria que me muestre de la siguiente manera, alguna idea de como
> > > hacer una consulta que me muestre de la siguiente forma. gracias
> > >
> > > Factura Nombre Telefono Varx Totalx
> > > 100 Jose Flores 3245455 I 10
> > > X 12
> > > Z 16

Responder Con Cita
  #5 (permalink)  
Antiguo 16-01-2008, 22:59:00
ryuyi
 
Mensajes: n/a
Predeterminado RE: Consulta Maestro detalle

Alejandro:

Gracias por tu colaboracion, ya resolvi el problema añadiendo algunas
restriciones a la consulta para que me muestre de esa forma que queria
gracias.

"Alejandro Mesa" wrote:

> ryuyi,
>
> Te recomiendo que eso lo hagas en la aplicacion cliente o herramienta de
> reportes que uses. Por ejemplo, si usas Reporting Services, tienes una
> propiedad llamada "Hide duplicates" para mostrar solo la primera instancia de
> un valor en un text box. Usa el motor SQL para seleccionar data, no para
> formatearla.
>
> AMB
>
> "ryuyi" wrote:
>
> > Alejandro primeramente darte las gracias el ejemplo que me diste es muy
> > bueno, pero que tendria que modificar en tu consulta para que el resultado me
> > muestre de la siguiente forma te copio el codigo.
> >
> > DATOS DE EJEMPLO
> > > > Tabla Encabezado
> > > > Factura Nombre Telefono
> > > > 100 Jose Flores 3245455
> > > > Tabla Detalle
> > > > Factura Nombre guia origen Var1 Total1 Var2 Total2 Var3 Total3
> > > > 100 Jose Flores 2200021 CBB I 10 X 12 Z 16

> > << 100 Jose Flores 3352445 SRZ E 30 O
> > 12 P 22
> > Esas eran las tablas
> > SELECT
> > e.Factura,
> > e.Nombre,
> > t2.guia,
> > t2.origen,
> > t2.Varx, --Variable donde almaceno el valor de x
> > t2.Totalx,--Variable donde almaceno el valor de mx
> >
> > FROM
> > encabezado AS e
> > INNER JOIN
> > (
> > SELECT
> > d.Factura,d.guia,d.origen
> > CASE t1.c1
> > WHEN 1 THEN x1
> > WHEN 2 THEN x2
> > WHEN 3 THEN x3
> > END AS Varx,
> > CASE t1.c1
> > WHEN 1 THEN mx1
> > WHEN 2 THEN mx2
> > WHEN 3 THEN mx3
> > END AS Totalx
> > FROM
> > detalle AS d
> > CROSS JOIN
> > (
> > SELECT 1 AS c1
> > UNION ALL
> > SELECT 2
> > UNION ALL
> > SELECT 3
> >
> > ) AS t1 ----
> > ) AS t2
> > ON e.Factura = t2.Factura
> >
> > Al hacer la consulta obtengo esto
> >
> > Factura Nombre guia origen varx Totalx
> > 100 Jose Flores 2200021 CBB I 10
> > 100 Jose Flores 2200021 CBB X 12
> > 100 Jose Flores 2200021 CBB Z 16
> > 100 Jose Flores 3352445 SRZ E 30
> > 100 Jose Flores 3352445 SRZ O 12
> > 100 Jose Flores 3352445 SRZ P 22
> >
> >
> > y Me gustaria que me muestre la consulta de la siguiente forma
> >
> > Factura Nombre guia origen varx Totalx
> > 100 Jose Flores 2200021 CBB I 10
> > 100 ---------- ---- X 12
> > 100 ---------- ---- Z 16
> > 100 3352445 SRZ E 30
> > 100 ---------- ---- O 12
> > 100 ---------- ---- P 22
> >
> > Gracias.
> >
> >
> >
> >
> >
> > "Alejandro Mesa" wrote:
> >
> > > ryuyi,
> > >
> > > Debes normalizar la tabla de detalle.
> > >
> > > declare ***Encabezado TABLE (
> > > Factura VARCHAR(15) NOT NULL,
> > > Nombre VARCHAR(50),
> > > Telefono CHAR(7)
> > > )
> > >
> > > DECLARE ***Detalle TABLE (
> > > Factura VARCHAR(15) NOT NULL,
> > > Var1 CHAR(1),
> > > Total1 INT,
> > > Var2 CHAR(1),
> > > Total2 INT,
> > > Var3 CHAR(1),
> > > Total3 INT
> > > )
> > >
> > > INSERT INTO ***Encabezado VALUES(100, 'Jose Flores', '3245455')
> > > INSERT INTO ***Detalle VALUES(100, 'I', 10, 'X', 12, 'Z', 16)
> > >
> > > SELECT
> > > e.Factura,
> > > e.Nombre,
> > > e.Telefono,
> > > t2.Varx,
> > > t2.Totalx
> > > FROM
> > > ***Encabezado AS e
> > > INNER JOIN
> > > (
> > > SELECT
> > > d.Factura,
> > > CASE t1.c1
> > > WHEN 1 THEN Var1
> > > WHEN 2 THEN Var2
> > > WHEN 3 THEN Var3
> > > END AS Varx,
> > > CASE t1.c1
> > > WHEN 1 THEN Total1
> > > WHEN 2 THEN Total2
> > > WHEN 3 THEN Total3
> > > END AS Totalx
> > > FROM
> > > ***Detalle AS d
> > > CROSS JOIN
> > > (
> > > SELECT 1 AS c1
> > > UNION ALL
> > > SELECT 2
> > > UNION ALL
> > > SELECT 3
> > > ) AS t1
> > > ) AS t2
> > > ON e.Factura = t2.Factura
> > >
> > > -- 2005
> > > ;WITH unpvt_var
> > > AS
> > > (
> > > SELECT
> > > Factura,
> > > Varx,
> > > CASE [Var]
> > > WHEN 'Var1' THEN 1
> > > WHEN 'Var2' THEN 2
> > > WHEN 'Var3' THEN 3
> > > END AS position
> > > FROM
> > > ***Detalle
> > > UNPIVOT
> > > (
> > > [Varx]
> > > FOR [Var] IN (Var1, Var2, Var3)
> > > ) AS unpvt
> > > ),
> > > unpvt_total
> > > AS
> > > (
> > > SELECT
> > > Factura,
> > > Totalx,
> > > CASE [Total]
> > > WHEN 'Total1' THEN 1
> > > WHEN 'Total2' THEN 2
> > > WHEN 'Total3' THEN 3
> > > END AS position
> > > FROM
> > > ***Detalle
> > > UNPIVOT
> > > (
> > > [Totalx]
> > > FOR [Total] IN (Total1, Total2, Total3)
> > > ) AS unpvt
> > > )
> > > SELECT
> > > e.Factura,
> > > e.Nombre,
> > > e.Telefono,
> > > t1.Varx,
> > > t2.Totalx
> > > FROM
> > > ***Encabezado AS e
> > > INNER JOIN
> > > unpvt_var AS t1
> > > ON e.Factura = t1.Factura
> > > INNER JOIN
> > > unpvt_total AS t2
> > > ON t2.Factura = t1.Factura
> > > AND t2.position = t1.position
> > > GO
> > >
> > >
> > > AMB
> > >
> > >
> > > "ryuyi" wrote:
> > >
> > > > Tengo un problema tengo los siguientes datos como por ejemplo
> > > > Tabla Encabezado
> > > > Factura Nombre Telefono
> > > > 100 Jose Flores 3245455
> > > > Tabla Detalle
> > > > Factura Var1 Total1 Var2 Total2 Var3 Total3
> > > > 100 I 10 X 12 Z 16
> > > >
> > > > Si hago una relacion de datos seria asi
> > > > SELECT e.Factura,Nombre,Telefono,
> > > > Var1,Total1,Var2,Total2,Var3,Total3
> > > > FROM encabezado e, detalle d
> > > > WHERE e.Factura=d.Factura
> > > >
> > > > AL hacer esto me mostraria de la siguiente forma
> > > >
> > > > Factura Nombre Telefono Var1 Total1 Var2 Total2 Var3
> > > > Total3
> > > > 100 Jose Flores 3245455 I 10 X 12
> > > > Z 16
> > > >
> > > > Pero me gustaria que me muestre de la siguiente manera, alguna idea de como
> > > > hacer una consulta que me muestre de la siguiente forma. gracias
> > > >
> > > > Factura Nombre Telefono Varx Totalx
> > > > 100 Jose Flores 3245455 I 10
> > > > X 12
> > > > Z 16

Responder Con Cita
 
Respuesta


Herramientas
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
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado


Temas Similares
Tema Autor Foro Respuestas Último mensaje
Maestro/Detalle DataGridView Giggs Newsgroup microsoft.public.es.dotnet.vb 2 15-02-2008 11:51:20
Maestro-Detalle en dataset. Juan Carlos Paramá Newsgroup microsoft.public.es.csharp 0 17-12-2007 09:17:20
Maestro-detalle Felix González Newsgroup microsoft.public.es.desarrollo.aplicaciones.moviles 15 13-06-2006 15:32:50
Reporte Maestro Detalle Uber Newsgroup microsoft.public.es.dotnet.framework 12 19-09-2005 14:34:59
relacion maestro detalle Felix González Newsgroup microsoft.public.es.desarrollo.aplicaciones.moviles 5 07-03-2005 12:17:37





Powered by: vBulletin, Versión 3.6.8
Derechos de Autor ©2000 - 2009, Jelsoft Enterprises Ltd.

LinkBacks Enabled by vBSEO 3.1.0 © 2007, Crawlability, Inc.