سلام
اساتید لطفا عکس ببنید
چیزی شبیه به این نیاز دارم چیکار کنمضمیمه 153350
Printable View
سلام
اساتید لطفا عکس ببنید
چیزی شبیه به این نیاز دارم چیکار کنمضمیمه 153350
ساده ترین حالت :
SELECT * FROM
(SELECT name,code,mande FROM TableName) AS Source
PIVOT (SUM(mande) FOR code IN ([1],[2],[3],[4],[5],[6])) AS Result
اگر اسامی ستونها مهم هست و بجای null باید 0 نشون داده بشه (مثل اونچه در تصویر اومده) :
SELECT name,
ISNULL([1],0) AS [mande code 1],
...
...
ISNULL([6],0) AS [mande code 6]
FROM
(SELECT name,code,mande FROM TableName) AS Source
PIVOT (SUM(mande) FOR code IN ([1],[2],[3],[4],[5],[6])) AS Result
سلام
متشکرم از پاسخگوییتون
من چیزی شبیه به این نیاز دارم
بجای دستور if چیو بنویسم
select distinct p.p8,p.p5,p.p6, v.codp,
if (a.ssar=6)
sum(a.bed)-sum(a.bes) as mande6
if (a.ssar=1)
sum(a.bed)-sum(a.bes) as mande1
if (a.ssar=4)
sum(a.bed)-sum(a.bes) as mande4
if (a.ssar=5)
sum(a.bed)-sum(a.bes) as mande5
if (a.ssar=7)
sum(a.bed)-sum(a.bes) as mande7
if (a.ssar=8)
sum(a.bed)-sum(a.bes) as mande8
from personeli p
inner join vamc v on p.p1=v.CODP
inner join ACCOUNT a on v.NSAR=a.NSAR
where a.dat <='1400/01/31'
group by p.p5,p.p6,p.p8,v.codp,v.vam,v.mozd,a.bed,a.bes
سلام و روز خوش
select distinct p.p8,p.p5,p.p6, v.codp,
mande6=
CASE
WHEN a.ssar=6 THEN sum(a.bed)-sum(a.bes)
ELSE 0
END,
mande1=
CASE
WHEN a.ssar=1 THEN sum(a.bed)-sum(a.bes)
ELSE 0
END,
...
...
...
mande8=
CASE
WHEN a.ssar=8 THEN sum(a.bed)-sum(a.bes)
ELSE 0
END
from personeli p
inner join vamc v on p.p1=v.CODP
inner join ACCOUNT a on v.NSAR=a.NSAR
where a.dat <='1400/01/31'
group by p.p5,p.p6,p.p8,v.codp,v.vam,v.mozd,a.bed,a.bes
سلام متشکر
به اولین مساوی کهmande6=می رسد این خطا اتفاق می افتد
FROM keyword not found where expected
سلام و روز خوش
من فقط اون بخش IFها رو براتون نوشتم و به مابقی کوئری کاری نداشتم.
اگر از ms sql استفاده میکنین فکر کنم همین که نوشتم درست باشه.
یک کوئری خیلی ساده رو تست کنین.