سلام
اساتید لطفا عکس ببنید
چیزی شبیه به این نیاز دارم چیکار کنم2021-05-31_121920.jpg
سلام
اساتید لطفا عکس ببنید
چیزی شبیه به این نیاز دارم چیکار کنم2021-05-31_121920.jpg
ساده ترین حالت :
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 استفاده میکنین فکر کنم همین که نوشتم درست باشه.
یک کوئری خیلی ساده رو تست کنین.