2015-03-13 55 views
-2

我试图挑从存储过程造成的,它的工作原理差不多但问题是,它不挑BUSNO,它存在于Transport.Buses表是外国在dbo.Tickets作为Bus_No为什么加入不工作?

ALTER PROCEDURE [dbo].[ReportConductorBusWiseTransactions] 
@FromDate date, 
@ToDate date 
AS 
    BEGIN 
     with myquery ([DateTime],ConductorName,BusNo,amount,Quantity) 
     as 
     (
      select Convert(varchar(20),serverdatetime,101) 'DateTime',b.BusNo,c.Name,T.amount,1 'Quantity' 
       from tickets T join transport.Conductors c on c.Conductorid = T.Conductor_ID 
       join transport.buses b on b.BusID= T.Bus_ID 
      WHERE CONVERT(DATE,T.ServerDateTime) BETWEEN @FromDate and @ToDate 
     ) 
     select *, 10 * c.[10Quantity] '10Amount',20 * c.[20Quantity] '20Amount',30 * c.[30Quantity] '30Amount',((10 * c.[10Quantity])+(20 * c.[20Quantity])+(30 * c.[30Quantity]))'GrandTotal' from (
     SELECT DateTime,ConductorName,BusNo,[10] AS '10Quantity', [20] AS '20Quantity', [30] AS '30Quantity' 
     FROM 
     (SELECT [DateTime], ConductorName,BusNo, amount,quantity 
     FROM myquery) p 
     PIVOT 
     (
     COUNT ([Quantity]) 
     FOR [Amount] IN 
     ([10], [20], [30]) 
     ) AS pvt 
     ) as c 
    END 

我不能调整我的巴士没有, 注意:每个公共汽车都与导体相关联,并且都存在于Tickets表中,我试图在每个他已经关联的公共汽车中指挥每个公共汽车显示总交易,即票据发行等,但问题是它不选择BusNo

+1

我错过了什么吗? Transport.Buses表不是在您显示的SQL中引用的,也不是BusNo?想要添加更多说明? – 2015-03-13 12:29:15

+0

我试过但失败了,所以我发布了这个问题, – 2015-03-13 12:30:33

+1

试过了什么?失败如何?错误?小姐计算?你基本上是要求我们为你写程序。 – 2015-03-13 12:32:28

回答

0
ALTER PROCEDURE [dbo].[ReportConductorBusWiseTransactions] '03-10-2015','03-13-2015' 
@FromDate date, 
@ToDate date 
AS 
    BEGIN 
     with myquery ([DateTime],ConductorName,BusNo,amount,Quantity) 
     as 
     (
      select Convert(varchar(20),serverdatetime,101) 'DateTime',c.Name,b.BusNo,T.amount,1 'Quantity' 
       from tickets T join transport.Conductors c on c.Conductorid = T.Conductor_ID 
       join transport.buses b on b.BusID= T.Bus_ID 
      WHERE CONVERT(DATE,T.ServerDateTime) BETWEEN @FromDate and @ToDate 
     ) 
     select *, 10 * c.[10Quantity] '10Amount',20 * c.[20Quantity] '20Amount',30 * c.[30Quantity] '30Amount',((10 * c.[10Quantity])+(20 * c.[20Quantity])+(30 * c.[30Quantity]))'GrandTotal' from (
     SELECT DateTime,ConductorName,BusNo,[10] AS '10Quantity', [20] AS '20Quantity', [30] AS '30Quantity' 
     FROM 
     (SELECT [DateTime], ConductorName,BusNo, amount,quantity 
     FROM myquery) p 
     PIVOT 
     (
     COUNT ([Quantity]) 
     FOR [Amount] IN 
     ([10], [20], [30]) 
     ) AS pvt 
     ) as c 
    END 
+0

这是什么?你自己解决了这个问题吗? – 2015-03-13 13:11:19

+0

是的,我做了,它的工作 – 2015-03-13 13:14:28