2016-08-17 3 views
1

Ich versuche, diese SQL-AbfrageGespeicherte Prozedur VS Abfrageausgabe

select 
    count(tblVV.PName) as total, 
    tblVV.PName 
from 
    tblVV 
inner join 
    tblRV on tblVV.MID = tblRV.ID 
inner join 
    tblReg on tblRV.RID = tblReg.RID 
where 
    tblReg.StartDate>= '2016-07-01 00:00:00' and 
    tblReg.EndDate<= '2016-07-31 23:59:59' and 
    tblReg.Region = 'uk' and 
    tblRegionVehicles_Uni.RegNo = 'BE82' and 
    tblVV.PName <>'' 
group by 
    tblVV.PName 

Das ist wie dieses Ergebnis zeigt

total PName 
1  Sugar 
11  Apple 

Nun, wenn ich eine gespeicherte Prozedur von derselben Abfrage wie diese

create procedure sp_ownerdata 
    @fromdate datetime, 
    @todate datetime, 
    @region varchar, 
    @RegNo varchar 
as 
    select 
     count(tblVV.PName) as total, 
     tblVV.PName 
    from 
     tblVV 
    inner join 
     tblRV on tblVV.MID = tblRV.ID 
    inner join 
     tblReg on tblRV.RID = tblReg.RID 
    where 
     tblReg.StartDate >= @fromdate and 
     tblReg.EndDate <= @todate and 
     tblReg.Region = @region and 
     tblRegionVehicles_Uni.RegNo = @RegNo and 
     tblVV.PName <>'' 
    group by 
     tblVV.PName 
erstellen

und führen Sie diese

execute sp_ownerdata '2016-07-01 00:00:00','2016-07-31 23:59:59','uk','BE82' 

dann zeigt dies nichts, wo ich richtigen Parameter Name und korrekte Werte schreibe ich eingeben, wenn ich Länge der gespeicherten Prozedur

total PName 

Antwort

4

Problem in den Parametern ausführen

@region varchar, 
@RegNo varchar 

Sie müssen die richtige Länge angeben für VARCHAR Parameter in gespeicherten Prozedur

@region varchar(10), 
@RegNo varchar(10) 
+0

danke für correctio n – user6628729