2011-02-10 9 views
1

고객, 무기 및 주문이라는 3 개의 테이블이 있다고 가정 해 보겠습니다. 내가 원하는 것은 각 고객에 대해 범주 (총, 권총 등) 및 총 무기량 당 구입 한 제품의 수량을 표시해야하는 테이블을 만드는 것입니다. 그것은 SQL 쿼리를 사용하여 구현 가능합니까? SQL CE를 사용하기 때문에 하위 쿼리없이 구현할 수 있습니까? 구조 다음있다그룹의 SQL 그룹 by by?

테이블 : 고객 (ID, 이름) 무기 (ID, weapon_type) 주문

(CUST_ID, 수량, weap_id) 그리고 나는 이것을하고 싶지 :

 
Name  | Order(w_type) | Quantity | Total 
-----------+---------------+--------------+----------- 
John Smith | Guns  |  3  | 7 
John Smith | Pistols  |  4  | 7 
-----------+---------------+--------------+----------- 
Jane Doe | Guns  |  5  | 14 
Jane Doe | Pistols  |  7  | 14 
Jane Doe | Cannons  |  2  | 14 

을 또는 (더 나은)

 
Name  | Order  | Quantity | Total 
-----------+---------------+--------------+----------- 
John Smith | Guns  |  3  | 
John Smith | Pistols  |  4  | 
-----------+---------------+--------------+-----------           
               7 
-----------+---------------+--------------+----------- 
Jane Doe | Guns  |  5  | 
Jane Doe | Pistols  |  7  | 
Jane Doe | Cannons  |  2  | 
-----------+---------------+--------------+----------- 
               14 

감사합니다.

+0

기존 검색어를 게시 할 수 있습니까? 그리고 어쩌면 전체 테이블 구조가 어떻게 서로 연결되는지 볼 수 있습니다. 'group-by' 절을 사용하면 둘 이상의 열을 지정할 수 있으므로'group by name, w_type 등 '을 사용할 수 있습니다. 또한 일부 SQL 방언에서는 별개의 레코드로 합계를 계산할 수도 있습니다 (오라클이 '롤업'으로 처리 할 수 ​​있다고 생각합니다). 그러나 SQL CE에 대해서는 잘 모르겠습니다. – FrustratedWithFormsDesigner

+0

나는 다음을 사용한다 : c.name, w.type, sum (oq) 수량 선택하기 o o cust_id = c.id에 cust c에 가입 c.id에 w.id = o.weap_id에 , w.type – Blablablaster

답변

0

CE에 분석 기능 (예 : SUM() OVER)이 없으므로 첫 번째 결과를 얻을 수 있습니다.

의도 한 ("더 나은"결과가 표 형식이 아닌 두 번째 인 경우) 두 개의 쿼리를 실행해야합니다. 하나는 테이블을위한 것이고 다른 하나는 합계를위한 것입니다. 그 중 하나, 또는 당신이 테이블 결과 (사람에 의해 주문)를 통해가는대로 합계를 수집합니다.