2016-10-19 7 views
0

によると、私は、このデータでTABLE1がデータは、時間

ID Name  StartDate     EndDate 
1 Paris  2014-02-01 00:00:00.000 2014-02-28 23:59:59.000 
2 UK   2014-02-01 00:00:00.000 2014-02-28 23:59:59.000 
3 France  2014-02-01 00:00:00.000 2014-02-28 23:59:59.000 

であると私は、パラメータデータは、今私が欲しい

[spdata] '2016-07-01 00:00:00.000', '2016-07-31 23:59:59.000', 'pARIS' 

Name No CAR Tin Cake Flow Unit total Speed SF 
John 412 0 0 12  0 5  17  82 60 
Mike 48 2 1 5  1 3  9  160 464 
ACNme 438 0 1 5  2 3  11  10  264 
XYZ 248 0 1 5  3 3  12  60  244 

IS入力したとき、SPはそのSPから

ALTER procedure [dbo].[spdata] 
@fromdate datetime, 
@todate datetime, 
@Region varchar(50) 
as 
Select (Select Sum(Convert(int,SF)) from RVU inner dbo.VI vh on RVU.FID = vh.FID WHERE vh.No = Q.No and ID in (
Select ID from RU WHERE CAST(StartDate as date)>= CAST(@fromdate as date) and CAST(EndDate as date)<= CAST(@todate as date) 
)) as SF 
from (
Select 
S.Name, 
S.No, 
SUM(Case when s.Vme='Car' then total else 0 end) as CAR, 
SUM(Case when s.Vme='Tin' then total else 0 end) as Tin, 
SUM(Case when s.Vme='Cake' then total else 0 end) as Cake, 
SUM(Case when s.Vme='Flow' then total else 0 end) as Flow, 
SUM(Case when s.Vme='Unit' then total else 0 end) as Unit, 
SUM(total) total , 
MAX(S.Speed) Speed 
from (
Select vh.Name as Name,vh.No as No,VV.Vame,count(VV.Vme) as total, RV.SF as MA, 
RV.Speed from VVU VV inner join RVU RV on VV.MID=RV.ID inner join RU RU on RV.ID=RU.ID 
left join dbo.VI vh on RV.FID = vh.FID WHERE CAST(RU.StartDate as date)>= CAST(@fromdate as date) and CAST(RU.EndDate as date)<= CAST(@todate as date) and 
RU.Name_C= @Name_C AND Vme <> '' Group By vh.Name, vh.No, VV.Vme, RV.SF, 
RV.Speed) S GROUP BY s.RegNo, s.Name) Q 

です私が時間を変更するとき '2016-07-01 00:00:00.000'、 '2016-07-31 23:59:59.000'、

この

'2016-07-01 02:02:00.000', '2016-07-31 12:59:59.000', 

よう

その後、レコードはまた、この時に反映させることは日付を加えた時刻のデータによると、日として、あなたの開始日、終了日、@fromdate、@todateをキャストしないでください表示

答えて

0

ことを意味します。

`Alter procedure [dbo].[spdata] 
     @fromdate datetime, 
     @todate datetime, 
     @Region varchar(50) 
     as 
     Select (Select Sum(Convert(int,SF)) from RVU inner dbo.VI vh on RVU.FID = vh.FID WHERE vh.No = Q.No and ID in (
     Select ID from RU WHERE StartDate >= @fromdate and EndDate <[email protected] 
     )) as SF 
     from (
     Select 
     S.Name, 
     S.No, 
     SUM(Case when s.Vme='Car' then total else 0 end) as CAR, 
     SUM(Case when s.Vme='Tin' then total else 0 end) as Tin, 
     SUM(Case when s.Vme='Cake' then total else 0 end) as Cake, 
     SUM(Case when s.Vme='Flow' then total else 0 end) as Flow, 
     SUM(Case when s.Vme='Unit' then total else 0 end) as Unit, 
     SUM(total) total , 
     MAX(S.Speed) Speed 
     from (
     Select vh.Name as Name,vh.No as No,VV.Vame,count(VV.Vme) as total, RV.SF as MA, 
     RV.Speed from VVU VV inner join RVU RV on VV.MID=RV.ID inner join RU RU on RV.ID=RU.ID 
     left join dbo.VI vh on RV.FID = vh.FID WHERE RU.StartDate >= @fromdate and RU.EndDate <= @todate and 
     RU.Name_C= @Name_C AND Vme <> '' Group By vh.Name, vh.No, VV.Vme, RV.SF, 
     RV.Speed 
     ) S GROUP BY s.RegNo, s.Name) Q` 
+0

キャストを削除しても同じ問題が発生した場合 –

+0

ご不明な点はありますか?もう少し説明していただけますか? – bhuvana

+0

@greenuser:あなたの他のテーブルを共有することができますので、私は私の最後に同じものを複製することができます。 –

関連する問題