나는이 테이블 내부 테이블SQL의 SUM 같은 열
CREATE TABLE [dbo].[StackOverflow]
(
[ArticleId] [bigint] NULL,
[Quantity] [decimal](18, 0) NULL,
[Type] [smallint] NULL
) ON [PRIMARY]
에게이이
ArticleId Quantity Type
------------- ------------ ------
10 50 1
12 20 1
10 10 1
10 18 1
12 5 2
17 14 2
10 30 2
- 유형 1은 그 기사가 생산 계획을 의미처럼 보이는 어떤 결과를
- 유형 2는 해당 기사가 완료되었음을 의미합니다.
나는 나에게
출력 = 슬라이스 브루스 모든 기사의 목록을 보여줍니다 출력 쿼리 필요 - 완료를
예 :은 articleID : 10 예정 수량은 다음과 같습니다 (78) 완료 수량은 다음과 같습니다
(30)의 출력 = 78 - 30 =
정말 보여줄 것이 없습니다. 나는 단지 ArticleId
으로 그룹화해야한다는 것을 알고있다.
SELECT
[ArticleId],
SUM(CASE WHEN [Type] = 1 THEN [Quantity] ELSE 0 END) - SUM(CASE WHEN [Type] = 2 THEN [Quantity] ELSE 0 END) AS [PlannedSubQuantityTotal]
FROM [dbo].[StackOverflow]
GROUP BY [ArticleId]
아니면 -
접두사로 계획과 함께 완료 합산으로 "속임수"를 사용 :
나는 당신이 두 가지 유형의 집계 금액을 빼지하기 위해 필요한이
SELECT
articleid,
SUM(quantity) - (SELECT SUM(quantity)
FROM stackoverflow
WHERE type = 2
AND main.articleId = stackoverflow.articleId
GROUP BY articleid)
FROM
stackoverflow AS main
WHERE
type = 1
GROUP BY
articleid
테이블 정의는 SQL Server처럼 보이므로 그에 따라 태그를 변경했습니다. –
@MageeWorld가 편집을 누르십시오. –