2013-04-08 5 views
-1

의 출력을 결합내가 2 개 테이블이 두 쿼리

OrderID Order_Line 
101  10 
101  20 
102  10 
102  20 
102  30 

내 예상 된 결과가 때 I 쿼리를 실행해야합니다 :

  • TotalSalesordercount를 2로 설정하십시오. 및
  • LineCount2 for Order 101로하고 3 for Order 102

답변

0
select 
    t1.orderid, 
    count(distinct t1.orderid) as 'TotalSalesordercount', 
    count(*) as 'LineCount' 
from 
    SalesOrder T1, 
    SalesOrderLine T2 
where 
    t1.orderid = t2.orderid 
group by 
    t1.orderid 
0

당신은 OrderIdJOIN 두 테이블에 원하는 다음 집계 함수를 사용합니다 :

select so.orderid, 
    so.order_desc, 
    count(ol.orderid) LineCount, 
    (select count(*) from salesorder) TotalOrders 
from salesorder so 
inner join orderline ol 
    on so.orderid = ol.orderid 
group by so.orderid, so.order_desc; 

SQL Fiddle with Demo

0

뭔가를 참조하십시오 이렇게하면 데이터에 적용됩니다.

select so.OrderId 
    , TotalSalesordercount = (select count(distinct OrderId) from SalesOrderLine) 
    , LineCount = count(1) 
from SalesOrder so 
    inner join SalesOrderLine sol on so.OrderId = sol.OrderId 
group by so.OrderId 

SQL Fiddle with demo.