내가 단순화 한 두 개의 CTE 쿼리를 가지고 있고, SELECT 문 아래 2 개 룩업 테이블에 가입 희망 : 그래서 절에서 다양한 시도했습니다CTE 및 가입이 개 룩업 테이블
with salesCTE (itemCode, custCode, quantity) as (
select
itemCode as itemCode,
customerCode as custCode,
sum(quantity) as quantity
from sales
group by itemCode, customerCode
order by 1
),
paymentsCTE (itemCode, custCode, quantity) as (
select
itemCode as itemCode,
customerCode as custCode,
sum(quantity) as quantity
from payments
group by itemCode, customerCode
order by 1
)
select
il.itemCode as itemCode,
il.itemName as itemName,
cl.customerCode as customerCode,
cl.customerName as customerName,
sal.quantity as quantitySold,
pay.quantity as quantityPaid,
sal.quantity - pay.quantity as quantityBalance
from
--This is where I'm having issues
을하지만, 나는 결과 세트를 얻지 못하거나 예상되는 결과 중 아주 작은 부분 일뿐입니다.
작동하지 않는 시도의 비록 내가 한 가장 논리적 인 하나 (무 반응) : 나는 또한 시도
from items il
join salesCTE sal on il.itemCode = sal.itemCode
join paymentsCTE pay on il.itemCode = pay.itemCode
join customers cl on (cl.customerCode = sal.custCode OR cl.customerCode = pay.custCode)
where 0=0
:
from items il, customers cl, salesCTE sal, paymentsCTE pay
where 0=0
and (il.itemCode = sal.itemCode OR il.itemCode = pay.itemCode)
and (cl.customerCode = sal.custCode OR il.itemCode = pay.custCode)
내가 너무 많은 일을하려고 이 쿼리는?
또한 일부 더미 데이터와 SQL 바이올린을 설정 한: http://sqlfiddle.com/#!4/4de7b/7 아래
이 customerCode = '102'에 대한 예상 결과입니다
╔══════════╦══════════════╦══════════════╦══════════════╦══════╦══════╦═════════╗
║ ItemCode ║ ItemName ║ CustomerCode ║ CustomerName ║ Sold ║ Paid ║ Balance ║
╠══════════╬══════════════╬══════════════╬══════════════╬══════╬══════╬═════════╣
║ 903 ║ Cowl ║ 102 ║ Clark Kent ║ 0 ║ 1 ║ -1 ║
║ 900 ║ Web Shooters ║ 102 ║ Clark Kent ║ 0 ║ 3 ║ -3 ║
╚══════════╩══════════════╩══════════════╩══════════════╩══════╩══════╩═════════╝
아이디어는 그 기록이있는 경우 판매 테이블에 삽입, ItemCode 900의 경우 Sold은 1, 밸런스는 -2가됩니다.
, 난 다시 가서 더 논리적 세트를 작성 : itemcode 및 custCode에 의해 모두 가입이 경우
당신은 전체 필요합니다. 나는 그 결과를보고 있으며, 그것이 형성되어 보이지만, 약간의 불일치가있는 것으로 보인다. 하지만 그건 내가 가진 것보다 훨씬 더 나아 갔다. 나는 네가 지금까지 가지고있는 것을 해결할 것이다. – Chester@Chester 예, 고객 가입에 문제가있었습니다. 내 대답을 업데이트했습니다 – Multisync
@Chester 또한 동일한 항목 코드 및 다른 고객이있는 판매 및 지불 행이 있으면 문제가있을 수 있습니다. 그렇다면 고객을 두 번 참여해야합니다. – Multisync