Agrrgar columna a Referencias Cruzadas

Hola experto, espero me puedas ayudar, este es un pequeño ejem que
me ha servido de mucho para guiarme pero ahora tengo otro inconveniente, quiero poner alado de Pcto01, Pcto02 ..., al cuot a la que debe llegar un vend, ¿se puede hacer?, claro que la cuota lo tengo en otra tabla en donde guardo el Cod del Vendedor, el Cod del Pcto y la cuota del pdcto
Nombre Pcto01 <Cuota1> Pcto02 <Cuota2> Pcto03 pcto04 pcto05 pcto06 Total
------ ------- ------- ------- ------- ------- ------- ------- ------ ------
1           1.1         10.00         .0         8.00          1.3      1.4       2.4       .0          6.2
2 2.1 8.00 3.4 7.00 2.3 2.4 2.4 .0 12.6
(2 filas afectadas)
USE Northwind
GO
Create TABLE Cuot
( Nomb char(02),
pcto char(2),
cant DECIMAL(2,1) )
GO
INSERT INTO Cuot VALUES (01, 1, 1.1)
INSERT INTO Cuot VALUES (02, 2, 1.2)
INSERT INTO Cuot VALUES (01, 3, 1.3)
INSERT INTO Cuot VALUES (01, 4, 1.4)
INSERT INTO Cuot VALUES (02, 1, 2.1)
INSERT INTO Cuot VALUES (02, 2, 2.2)
INSERT INTO Cuot VALUES (02, 3, 2.3)
INSERT INTO Cuot VALUES (02, 4, 2.4)
INSERT INTO Cuot VALUES (02, 5, 2.4)
INSERT INTO Cuot VALUES (01, 5, 2.4)
GO
select * from cuot
select n.*,(n.Pcto01 + n.Pcto02 + n.Pcto03 + n.Pcto04 + n.Pcto05 + n.Pcto06 ) as Total
from (SELECT Nomb as Nombre,
SUM(CASE c.pcto WHEN 1 THEN cant ELSE 0 END) AS Pcto01,
SUM(CASE c.pcto WHEN 2 THEN cant ELSE 0 END) AS Pcto02,
SUM(CASE c.pcto WHEN 3 THEN cant ELSE 0 END) AS Pcto03,
SUM(CASE c.pcto WHEN 4 THEN cant ELSE 0 END) AS pcto04,
SUM(CASE c.pcto WHEN 5 THEN cant ELSE 0 END) AS pcto05,
SUM(CASE c.pcto WHEN 6 THEN cant ELSE 0 END) AS pcto06
FROM cuot as C
GROUP BY Nomb) as N
GO
Bueno espero me puedas ayudar o darme un link de referencia para seguir investigando ...

1 Respuesta

Respuesta
1
Debes hacer el innner join con la tabla que contiene la otra información, si pudieras enviar el script de la tabla con algunos datos tal vez pueda darte alguna ayuda adicional ya que aun no me queda muy claro lo que deseas realizar.
mmm... ia un tk y hoy te mando el archivo es q eh estado ocupado y espero q me puedas ayudar .... ok
Ok, a la espera de lo indicado
Bueno Experto aquí te mando un link con un archivo de excel para que veas
Como es que deseo que quede la consulta final pero aquí te mando el cod en
sql con un poco + de detalles bueno gracias de antemano Experto ...
http://rapidshare.com/files/207748911/jar.xls.html
USE pubs
GO
create table PctosVendidos
( NombVend varchar(20),
pcto char(2),
cant DECIMAL(2,1) )
GO
create table Cuota
( NombVend varchar(20),
pcto char(2),
CuotaLimite DECIMAL(2,1) )
go
INSERT INTO PctosVendidos VALUES ('Juan', 1, 1.1)
INSERT INTO PctosVendidos VALUES ('Pepe', 2, 1.2)
INSERT INTO PctosVendidos VALUES ('carlos', 3, 1.3)
INSERT INTO PctosVendidos VALUES ('Juan', 4, 1.4)
INSERT INTO PctosVendidos VALUES ('Pepe', 1, 2.1)
INSERT INTO PctosVendidos VALUES ('Pepe', 2, 2.2)
INSERT INTO PctosVendidos VALUES ('Pepe', 3, 2.3)
INSERT INTO PctosVendidos VALUES ('carlos', 4, 2.4)
INSERT INTO PctosVendidos VALUES ('carlos', 5, 2.4)
INSERT INTO PctosVendidos VALUES ('Juan', 5, 2.4)
INSERT INTO PctosVendidos VALUES ('Jose', 5, 2.4)
GO
Sorry Brother parece q no salio la pregunta completa en el comentario anterior creo q por un problema del servidor (habia muchas mayusculas plop !!!)
bueno pero aqui te mando un link para q veas q es lo q quiero hacer
http://rapidshare.com/files/207755789/jar.txt.html
gracias ....
Ahora si esta claro, te envío una ayuda.
Declare @cuota table
( nombvend char(40),
pcto char(2),
cuota int )
declare @pctosvendidos table
( nombvend varchar(20),
pcto char(2),
cant decimal(2,1) )
insert into @cuota values ('juan', 1, 1)
insert into @cuota values ('juan', 2, 1)
insert into @cuota values ('juan', 3, 2)
insert into @cuota values ('juan', 4, 2)
insert into @cuota values ('juan', 5, 3)
insert into @cuota values ('juan', 6, 1.2)
insert into @cuota values ('pepe', 1, 3)
insert into @cuota values ('pepe', 2, 5)
insert into @cuota values ('pepe', 3, 3)
insert into @cuota values ('pepe', 4, 1)
insert into @cuota values ('pepe', 5, 1)
insert into @cuota values ('pepe', 6, 1)
insert into @cuota values ('carlos', 1, 2)
insert into @cuota values ('carlos', 2, 2.1)
insert into @cuota values ('carlos', 3, 1.1)
insert into @cuota values ('carlos', 4, 4)
insert into @cuota values ('carlos', 5, 3)
insert into @cuota values ('carlos', 6, 1)
insert into @pctosvendidos values ('juan', 1, 1.1)
insert into @pctosvendidos values ('pepe', 2, 1.2)
insert into @pctosvendidos values ('carlos', 3, 1.3)
insert into @pctosvendidos values ('juan', 4, 1.4)
insert into @pctosvendidos values ('pepe', 1, 2.1)
insert into @pctosvendidos values ('pepe', 2, 2.2)
insert into @pctosvendidos values ('pepe', 3, 2.3)
insert into @pctosvendidos values ('carlos', 4, 2.4)
insert into @pctosvendidos values ('carlos', 5, 2.4)
insert into @pctosvendidos values ('juan', 5, 2.4)
--insert into @pctosvendidos values ('jose', 5, 2.4)
select *, pcto01+ pcto02+ pcto03+ pcto04+ pcto05+ pcto06 total
from (
select a.nombvend,
sum(case when a.pcto= 1 then isnull(b.cant, 0) else 0 end) pcto01,
sum(case when a.pcto= 1 then isnull(a.cuota, 0) else 0 end) cta01,
sum(case when a.pcto= 2 then isnull(b.cant, 0) else 0 end) pcto02,
sum(case when a.pcto= 2 then isnull(a.cuota, 0) else 0 end) cta02,
sum(case when a.pcto= 3 then isnull(b.cant, 0) else 0 end) pcto03,
sum(case when a.pcto= 3 then isnull(a.cuota, 0) else 0 end) cta03,
sum(case when a.pcto= 4 then isnull(b.cant, 0) else 0 end) pcto04,
sum(case when a.pcto= 4 then isnull(a.cuota, 0) else 0 end) cta04,
sum(case when a.pcto= 5 then isnull(b.cant, 0) else 0 end) pcto05,
sum(case when a.pcto= 5 then isnull(a.cuota, 0) else 0 end) cta05,
sum(case when a.pcto= 6 then isnull(b.cant, 0) else 0 end) pcto06,
sum(case when a.pcto= 6 then isnull(a.cuota, 0) else 0 end) cta06
from @cuota a left join @pctosvendidos b on b.nombvend = a.nombvend and b.pcto = a.pcto
group by a.nombvend
)a

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas