PDA

View Full Version : سوال: مشکل با گزارش گیری SP



Javad_raouf
جمعه 16 مهر 1389, 12:28 عصر
با سلام
مشکل این Sp چیه:

CREATE PROCEDURE TarazSubMoin(
@Date1 char(10),
@Date2 char(10)
)
/************************************************** ****************************
Modified by :Yousef Ekhtiari
Modified date:1385/05/15
************************************************** ****************************/

AS
SET NOCOUNT ON
INSERT #TSubMoin (Kol ,Codemoin,CodeSubMoin,namekol,namemoin,[NAme] ,BedNow ,BesNow ,bed, bes)
Select
GardeshNowSubMoin.Kol as Kol,
GardeshNowSubMoin.CodeMoin as Codemoin,
GardeshNowSubMoin.CodeSubm As CodeSubMoin,
cast(' ' as varchar(100)) as NameKol,
cast(' ' as varchar(100)) as namemoin,
submoin.NameSubm As [NAme],
isnull(GardeshNowSubMoin.BedNow,0) BedNow,
isnull(GardeshNowSubMoin.BesNow,0) BesNow,
cast(0 as money) as bed,
cast(0 as money) as bes --into:##TSubmoin
from
dbo.SubMoin
Left join
(SELECT sanad.CodeKol as Kol,sanad.CodeMoin as Codemoin,sanad.CodeSubMoin as CodeSubM, SUM(isnull(Sanad.Bed,0)) AS BedNow, SUM(isnull(Sanad.Bes,0)) AS BesNow
FROM dbo.Sanad
Where Sanad.DateSanad>=@Date1 and Sanad.DateSanad<=@Date2 and not (Nullif(Ltrim(RTrim(sanad.CodeSubMoin)),'') is null)--and Sanad.mod>0
GROUP BY sanad.CodeKol,sanad.CodeMoin,Sanad.CodeSubMoin
HAVING Abs(SUM(isnull(Sanad.Bed,0))- SUM(isnull(Sanad.Bes,0)))>0)GardeshNowSubMoin

--on (SubMoin.CodesubM = GardeshnowSubMoin.CodeSubM and SubMoin.Kol = GardeshnowSubMoin.Kol and SubMoin.Moin = GardeshNowSubMoin.CodeMoin)
on SubMoin.Codesubm=GardeshNowSubMoin.CodeSubM
Where
bednow <>0
or besnow <>0
ORDER BY Kol,Codemoin,CodeSubMoin

UPDATE #TSubMoin
set Bed=CASE
WHEN BedNow>BesNow
THEN isnull(BedNow,0) - isnull(BesNow,0)
ELSE Bed
END
,
Bes=CASE
WHEN BesNow>BedNow
THEN isnull(BesNow,0) - isnull(BedNow,0)
ELSE Bes
END
where
BedNow>BesNow
or BesNow>BedNow

UPDATE #TSubMoin
set NameKol=Kol.NAmekol
From #TSubmoin,Kol
Where #tSubMoin.Kol=Kol.CodeKol

UPDATE #TSubMoin
set Namemoin=moin.NAmeMoin
From #TSubmoin,Moin
Where #tSubMoin.Kol=Moin.CodeKol and #tSubMoin.Codemoin=Moin.CodeMoin
GO

چرا وقتی می خوام با کریستال ریپورت بگیرم ازش ارور زیر رو میده:

http://barnamenevis.org/forum/attachment.php?attachmentid=57959&stc=1&d=1286529591
فکر می کنم به # گیر میده
ممنون میشم راهنماییم کنید

MahmoudiNik
جمعه 16 مهر 1389, 18:55 عصر
سلام
علامت # قبل از اون شیئ یعنی اون یک جدول موقتی هست و توی رم قرار دارد پس با کد تولید و با اتمام برنامه هم باید از بین برود
خطای بالا هم بخاطر این است که شیئی هنوز ایجاد نشده ابتدا باید آنرا ساخت.

s.Jabbari
جمعه 16 مهر 1389, 19:44 عصر
CREATE PROCEDURE TarazSubMoin(
@Date1 char(10),
@Date2 char(10)
)
/************************************************** ****************************
Modified by :Yousef Ekhtiari
Modified date:1385/05/15
************************************************** ****************************/


AS
SET NOCOUNT ON


Select
GardeshNowSubMoin.Kol as Kol,
GardeshNowSubMoin.CodeMoin as Codemoin,
GardeshNowSubMoin.CodeSubm As CodeSubMoin,
cast(' ' as varchar(100)) as NameKol,
cast(' ' as varchar(100)) as namemoin,
submoin.NameSubm As [NAme],
isnull(GardeshNowSubMoin.BedNow,0) BedNow,
isnull(GardeshNowSubMoin.BesNow,0) BesNow,
cast(0 as money) as bed,
cast(0 as money) as bes
into:##TSubmoin
from
dbo.SubMoin
Left join
(SELECT sanad.CodeKol as Kol,sanad.CodeMoin as Codemoin,sanad.CodeSubMoin as CodeSubM, SUM(isnull(Sanad.Bed,0)) AS BedNow, SUM(isnull(Sanad.Bes,0)) AS BesNow
FROM dbo.Sanad
Where Sanad.DateSanad>=@Date1 and Sanad.DateSanad<=@Date2 and not (Nullif(Ltrim(RTrim(sanad.CodeSubMoin)),'') is null)--and Sanad.mod>0
GROUP BY sanad.CodeKol,sanad.CodeMoin,Sanad.CodeSubMoin
HAVING Abs(SUM(isnull(Sanad.Bed,0))- SUM(isnull(Sanad.Bes,0)))>0)GardeshNowSubMoin


--on (SubMoin.CodesubM = GardeshnowSubMoin.CodeSubM and SubMoin.Kol = GardeshnowSubMoin.Kol and SubMoin.Moin = GardeshNowSubMoin.CodeMoin)
on SubMoin.Codesubm=GardeshNowSubMoin.CodeSubM
Where
bednow <>0
or besnow <>0
ORDER BY Kol,Codemoin,CodeSubMoin


UPDATE #TSubMoin
set Bed=CASE
WHEN BedNow>BesNow
THEN isnull(BedNow,0) - isnull(BesNow,0)
ELSE Bed
END
,
Bes=CASE
WHEN BesNow>BedNow
THEN isnull(BesNow,0) - isnull(BedNow,0)
ELSE Bes
END
where
BedNow>BesNow
or BesNow>BedNow


UPDATE #TSubMoin
set NameKol=Kol.NAmekol
From #TSubmoin,Kol
Where #tSubMoin.Kol=Kol.CodeKol


UPDATE #TSubMoin
set Namemoin=moin.NAmeMoin
From #TSubmoin,Moin
Where #tSubMoin.Kol=Moin.CodeKol and #tSubMoin.Codemoin=Moin.CodeMoin
GO


در کوئری شما عبارت --into:##TSubmoin
کامنت شده