난에 데이터를 덤프하고 테이블 변수가 있습니다특정 레코드의 평균을 찾는 방법 T-SQL
DECLARE @TmpTbl_SKUs AS TABLE
(
Vendor VARCHAR (255),
Number VARCHAR(4),
SKU VARCHAR(20),
PurchaseOrderDate DATETIME,
LastReceivedDate DATETIME,
DaysDifference INT
)
일부 기록은 구매 주문 날짜 또는 마지막받은 날짜를 필요는 없습니다, 그래서 일 차이는 null입니다. 내부 조인을 많이 했었지만 데이터가 너무 오래 걸리는 것으로 보이거나 대부분 잘못된 시간이 나온다.
SKU 일별 평균을 구할 수 있습니까? 해당 SKU의 레코드가 하나만 있는지 어떻게 확인합니까? 데이터가 필요합니다. 레코드가 1 개인 경우 평균을 챔피언 레벨에서 찾아야합니다. 여기
는 구조입니다 :공급 업체는 많은 숫자와 숫자가 많은 SKU를
, 나는이 일을 균열 수없는 것 어떤 도움이 좋을 것를 가지고도 나는이에 관련된 아무것도 찾을 수 있습니다 온라인. 미리 감사드립니다.
Vendor Number SKU PurchaseOrderDate LastReceivedDate DaysDifference
OTHER PMDD 1111 OP1111 2009-08-21 00:00:00.000 2009-09-02 00:00:00.000 12
OTHER PMDD 1111 OP1112 2009-12-09 00:00:00.000 2009-12-17 00:00:00.000 8
MANTOR 3333 MA1111 2006-02-15 00:00:00.000 2006-02-23 00:00:00.000 8
MANTOR 3333 MA1112 2006-02-15 00:00:00.000 2006-02-23 00:00:00.000 8
내가이 잘못 쓴 수 있습니다 미안 해요 : 여기
는 일부 샘플 데이터입니다. 레코드에 SKU가 하나만 있으면 DaysDifference (null이 아닌 경우)를 반환하고 레코드가 두 개 이상이고 null이 아닌 경우 평균 일 차이를 반환합니다. 그것은 그렇지 않으면 그것은 단지 7을 반환해야하고 null이 아닌의 SKU의 평균에 대한 공급 업체 수준의 검사에서 모두 널 (null) 인 경우, 이것은 내가 시도 무엇이 함께 연주SELECT t1.SKU, ISNULL
(
AVG(t1.DaysDifference),
(
SELECT ISNULL(AVG(t2.DaysDifference), 7)
FROM @TmpTbl_SKUs t2
WHERE t2.SKU=t1.SKU
GROUP BY t2.ChampVendor, t2.VendorNumber, t2.SKU
)
)
FROM @TmpTbl_SKUs t1
GROUP BY t1.SKU
에 보관할. 내가 가진 것은 다소 있지만, 여러 레코드가 있는지 확인하는 방법과 공급 업체 수준에서 확인하는 방법을 이해하지 못합니다.
설명 텍스트를 실제로 따라하지 않습니다. 샘플 데이터 및 원하는 결과 행을 제공 할 수 있습니까? –
또한 문제 해결에 대한 귀하의 시도를 게시 하시겠습니까? 그래서 우리는 당신을 위해 작동하지 않는 솔루션을 제공하려고하지 않았습니다. 또는 우리는 당신의 능력을 향상시키기 위해 할 수있는 일을 볼 수있었습니다. –
죄송합니다. 나는 그것을 부분적으로 잘못 썼다. 그게 더 의미가 있기를 바랍니다. 내 쿼리는 검색하기에 너무 많은 레코드를 반환하기 때문에 어떤 점에서는 실패합니다. 그것은 나를 미치게합니다. – pqsk