2014-06-23 3 views
0

안녕 얘들 아 나는 하나의 아주 간단한 문제에 붙어있어 다음 두 쿼리가 잘 작동하지만 하나의 테이블에 두 쿼리의 결과를 원한다. 그래서이 둘을 결합하여 가능한 한 결합 할 수있는 방법이 무엇일까? 하나의 테이블에 결과를 줘, 나는 UNION를 시험해 보았다. 그러나 그것은 일을 didnt한다. 친절히 말해 나에게 solution.Thanks를 말해라! 이 경우두 개의 쿼리를 결합하여 하나의 테이블에 결과를 표시 하시겠습니까?

Select ITEM_DETAILS.ITEM_MODEL, 
     ITEM_DETAILS.ITEM_NAME, 
     ITEM_DETAILS.ITEM_DESCRIPTION, 
     ITEM_DETAILS.VENDOR_NAME, 
     ITEM_DETAILS.INVOICE_NUM, 
     ITEMS_MASTER.QUANTITY 
     from ITEM_DETAILS 
     inner join ITEMS_MASTER 
     on ITEM_DETAILS.ITEM_MODEL=ITEMS_MASTER.ITEM_MODEL 

Select RATE=(CASE WHEN Discount IS NULL OR Discount=0 THEN RATE ELSE RATE-(RATE*(Discount/100))END),    
     AMOUNT=(CASE WHEN Discount IS NULL OR Discount=0 THEN AMOUNT ELSE AMOUNT-(AMOUNT*(Discount/100)) END) 
     from ITEM_DETAILS  
+1

현재 출력 및 원하는 출력은 무엇입니까? 어떤 DBMS를 사용하고 있습니까? '연합 '을 사용했을 때 무슨 일이 일어 났습니까? 첫 번째 쿼리에서 'Rate'값을 선택하지 않은 이유는 무엇입니까? 요금을 계산하려고하십니까? – TheNorthWes

+0

테이블의 구조는 무엇입니까 - 열과 데이터 형식은 무엇입니까? –

+0

MS Sql Server 2012를 사용하면 현재 출력이 두 개의 서로 다른 테이블에 값을 표시합니다. 'Union'이 사용되면 'UNION, INTERSECT 또는 EXCEPT 연산자를 사용하여 결합 된 모든 쿼리는 대상 목록에 동일한 수의 표현식을 가져야합니다. '~ – CodeSniper

답변

0

SQL 서버 당신은 당신은 모든 요금과 ITEM_DETAILS 테이블에서 양 또는 만족하는 사람을 원하는 경우 확실하지 오전이

Select ITEM_DETAILS.ITEM_MODEL, 
     ITEM_DETAILS.ITEM_NAME, 
     ITEM_DETAILS.ITEM_DESCRIPTION, 
     ITEM_DETAILS.VENDOR_NAME, 
     ITEM_DETAILS.INVOICE_NUM, 
     ITEMS_MASTER.QUANTITY, 
     CASE WHEN ITEM_DETAILS.Discount IS NULL OR ITEM_DETAILS.Discount=0 THEN ITEM_DETAILS.RATE ELSE ITEM_DETAILS.RATE-(ITEM_DETAILS.RATE*(ITEM_DETAILS.Discount/100))END AS 'RATE', 
     CASE WHEN ITEM_DETAILS.Discount IS NULL OR ITEM_DETAILS.Discount=0 THEN ITEM_DETAILS.AMOUNT ELSE ITEM_DETAILS.AMOUNT-(ITEM_DETAILS.AMOUNT*(ITEM_DETAILS.Discount/100)) END AS 'AMOUNT' 
     from ITEM_DETAILS 
     inner join ITEMS_MASTER 
     on ITEM_DETAILS.ITEM_MODEL=ITEMS_MASTER.ITEM_MODEL 

같은 것을 시도 않았다 조인 조건

+0

네, 당신이 쓴 Karthik Ganesan과 똑같은 것을 원합니다. :) – CodeSniper

0

두 가지 쿼리를 모두 살펴보면 결합 된 결과를 원합니다. 이 경우에는 UNION이 필요하지 않습니다. 다음과 같이 열을 조합하면됩니다.

Select ITEM_DETAILS.ITEM_MODEL, 
     ITEM_DETAILS.ITEM_NAME, 
     ITEM_DETAILS.ITEM_DESCRIPTION, 
     ITEM_DETAILS.VENDOR_NAME, 
     ITEM_DETAILS.INVOICE_NUM, 
     ITEMS_MASTER.QUANTITY, 
     RATE=(CASE WHEN ITEM_DETAILS.Discount IS NULL OR ITEM_DETAILS.Discount=0 THEN ITEM_DETAILS.RATE ELSE ITEM_DETAILS.RATE-(ITEM_DETAILS.RATE*(ITEM_DETAILS.Discount/100))END), 
     AMOUNT=(CASE WHEN ITEM_DETAILS.Discount IS NULL OR ITEM_DETAILS.Discount=0 THEN ITEM_DETAILS.AMOUNT ELSE ITEM_DETAILS.AMOUNT-(ITEM_DETAILS.AMOUNT*(ITEM_DETAILS.Discount/100)) END) 
FROM ITEM_DETAILS 
     inner join ITEMS_MASTER 
     on ITEM_DETAILS.ITEM_MODEL=ITEMS_MASTER.ITEM_MODEL 
관련 문제