0

質問があります:

select e.Owner as 'Owner', COUNT(l.EnquiryID) as 'Total Sales Lines'
from DayBookQuoteLines l, DayBookEnquiries e
where l.EnquiryID = e.EnquiryID
and MONTH(e.enquirydate) = 8 and YEAR(e.enquirydate) = 2012 
group by e.Owner

これにより、名前と合計列を含む所有者列が返されますが、追加のフィルターを適用して再度カウントする列がさらに 2 つ必要で、以下を追加します。

l.LostStatusId =2 

l.LostStatusId =3 

したがって、次のような結果セットが残ります。

Owner      Total Lines    Total Sold    Total Lost    

Person1    124            112           12

クエリを正しく取得できないようです。サブセレクトを使用しようとしていますが、明らかに何かが欠けています。

4

3 に答える 3

1

条件が満たされたときにレコードを追加することで、条件付きでレコードをカウントできます。

select e.Owner as 'Owner', 
       COUNT(l.EnquiryID) as 'Total Sales Lines',
       sum(case when l.LostStatusId = 2 then 1 end) TotalSold,
       sum(case when l.LostStatusId = 3 then 1 end) TotalLost
  from DayBookQuoteLines l
 inner join DayBookEnquiries e
    on l.EnquiryID = e.EnquiryID
 where MONTH(e.enquirydate) = 8 
   and YEAR(e.enquirydate) = 2012 
 group by e.Owner
于 2012-08-02T11:26:52.870 に答える
1

スキーマを見ずに書くのは難しいですが、これを試しましたか:

select 
    e.Owner as 'Owner', 
    COUNT(l.EnquiryID) as 'Total Sales Lines'
    count(select count(a.salesMade) from DayBookQuoteLines where month=MONTH(e.enquirydate)) as totalSold,
    count(select count(a.lostSales) from DayBookQuoteLines where month=MONTH(e.enquirydate)) as totalLost
from 
    DayBookQuoteLines l, 
    DayBookEnquiries e
where 
    l.EnquiryID = e.EnquiryID
    and MONTH(e.enquirydate) = 8 
    and YEAR(e.enquirydate) = 2012 
group by e.Owner
于 2012-08-02T11:26:56.970 に答える
1

これにより、さまざまな合計が得られます

select e.owner, LostStatusID , COUNT(l.EnquiryID)
from DayBookQuoteLines l
    inner join DayBookEnquiries e  
    on l.EnquiryID = e.EnquiryID    
group by owner, LostStatusID with rollup

横に並べたい場合はPIVOTが必要です。これは、さまざまな SQL によって異なります。

select owner, [2]+[3] as total, [2],[3]
from 
(
    select e.owner, LostStatusID , l.EnquiryID
    from DayBookQuoteLines l
        inner join DayBookEnquiries e  
        on l.EnquiryID = e.EnquiryID    

) v
    pivot
(count(enquiryid) for LostStatusID in ([2],[3])) p
于 2012-08-02T11:24:38.690 に答える