سلام دوستان.من یک Query به شکل زیر نوشتم.
Select substring(Pt.date1,4,2) as [month],Po.code_k,sum(po.gty) as Tedad,Pa.rdfanbar
from P_anbar Pa
inner join P_oriz1 Po on pa.rdfanbar=Po.rdfanbar and Pa.cod_k=Po.Code_k and Pa.cod_v=Po.code_v
inner join p_otpt pt on pt.code=po.code
group by Po.code_k,Pa.rdfanbar,substring(Pt.date1,4,2)
order by code_k,[month]
حالا کار این query چیه؟
ببینید در این کوئری من جمع فروشهای کالاهای مختلف رو در هرماه بدست اوردم.
مثلا فکر کنید کالای x در ماههای 5و6و7 فروش داشته است. با این query همه اونها رو براساس ماه به من نشون میده.
حالا مشکل اینجاست که این query برای هر ماه یک ردیف در نظر میگیره .یعنی من میخوام هرکالایی رو یک بار بیاره و اگر در هر ماهی هم فروش داشت یک فیلدی در نظر بگیره و در اون عدد جمع در اون ماه رو بنویسه.در اصل نمیخوام برای هرماه بیاد یک ردیف در نظر بگیره.
الان صورت شکل a1 است که میخوام به شکل a2 باشه.
حالا باید چه جوری به این شکل تنظیمش کنم؟
البته ناگفته نمونه که من این شکل ماهها رو در خود دلفی درست کردم ولی به همون شکل بالاست که برای هر ماه یک ردیف هست.میخوام مثل شکل دوم باشه.
with ADOQuery1 do
begin
i:=fieldbyname('month').Value;
case i of
01:fieldbyname('m1').value:=fieldbyname('tedad').v alue;
02:fieldbyname('m2').value:=fieldbyname('tedad').v alue;
03:fieldbyname('m3').value:=fieldbyname('tedad').v alue;
04:fieldbyname('M4').value:=fieldbyname('tedad').v alue;
05:fieldbyname('m5').value:=fieldbyname('tedad').v alue;
06:fieldbyname('m6').value:=fieldbyname('tedad').v alue;
07:fieldbyname('m7').value:=fieldbyname('tedad').v alue;
08:fieldbyname('m8').value:=fieldbyname('tedad').v alue;
09:fieldbyname('m9').value:=fieldbyname('tedad').v alue;
10:fieldbyname('m10').value:=fieldbyname('tedad'). value;
11:fieldbyname('m11').value:=fieldbyname('tedad'). value;
12:fieldbyname('m12').value:=fieldbyname('tedad'). value;
end;
end;
این هم درست کردن شکل ماهها که درست شده ولی اگر یک کالا در چند ماه فروش داشته باشه چند بار کالا رو تکرار میکنه که میخوام در یک ردیف در هرماهی که فروش داشته در ستون مربوطه اونو بنویسه.