SQL Server 2012에 테이블이 있습니다. 다음 쿼리는 훌륭하게 작동합니다.
SELECT TOP 300 [ObjectID], [tbh_Objects].Title, [Quantity], [tbh_Section].Title
FROM [ECom].[dbo].[tbh_Objects]
INNER JOIN [tbh_Section] ON tbh_Objects.SectionID = tbh_Section.SectionID
ORDER BY tbh_Objects.AddedDate DESC
난 그냥하고 싶어합계동일한 쿼리를 유지하는 수량 열의 끝에. Group By ROLL UP에 대해 읽었지만 머리를 감쌀 수없는 것 같습니다.
누구든지 제발 도와 줄 수 있습니까?
-
답변 # 1
-
답변 # 2
이것은 롤업을 위해 창 함수를 사용하여 세부 쿼리와 함께 작동합니다.
SELECT TOP 300 [ObjectID], [tbh_Objects].Title, [Quantity], [tbh_Section].Title, SumQuantity = SUM([Quantity]) OVER (PARTITION BY ObjectID) FROM [ECom].[dbo].[tbh_Objects] INNER JOIN [tbh_Section] ON tbh_Objects.SectionID = tbh_Section.SectionID ORDER BY tbh_Objects.AddedDate DESC
값을 TOP에있는 것과 정렬해야하는 경우이 쿼리가 작동합니다.
;WITH A AS ( SELECT [ObjectID], [tbh_Objects].Title, [Quantity], [tbh_Section].Title, TopValue= ROW_NUMBER() OVER(ORDER BY tbh_Objects.AddedDate) FROM [ECom].[dbo].[tbh_Objects] INNER JOIN [tbh_Section] ON tbh_Objects.SectionID = tbh_Section.SectionID ) SELECT *, SumQuantity = SUM([Quantity]) OVER (PARTITION BY ObjectID) FROM A WHERE TopValue <= 300
관련 자료
- javascript - 검색 매개 변수를 기반으로 데이터베이스를 쿼리하고 각 위치에 대해 '전체'를 반환
- 논리 기반 SQL Server 선택 쿼리
- sql - SELECT의 하위 쿼리 값 표시
- sql - MySQL 선택 쿼리는 여러 ID를 포함하는 행을 가져옵니다
- c# - linq 쿼리 - 고유 한 선택 쿼리를 매개 변수화하는 방법
- sql - Select Query는 HANA에서 execBatch ()를 지원합니까?
- c# - 쿼리 문자열에서 "select top * x"를 분리하는 방법은 무엇입니까?
- mysql - 가장 비싼 장치에서 가장 저렴한 장치로 주문한 모든 장치를 선택하는 쿼리를 만듭니다
- MYSQL 쿼리에서 UPDATE 내에서 선택하는 방법
- ManyToMany 필드의 총 레코드 수에 대한 Django 쿼리
- SQL Server 선택 쿼리가 매우 느림
- laravel - 요일 총량 SQL 쿼리를 얻는 방법
- postgresql - Python을 사용하여 다른 변수에 대해 db에서 선택 쿼리 실행
- sql - 두 필드가 일치하지 않는 SELECT 쿼리
- c# - linq select 쿼리에서 문자열 목록을 초기화하는 방법은 무엇입니까?
- MySQL 중첩 SELECT 쿼리를 실행하는 데 시간이 너무 오래 걸림
- SQL 선택 쿼리에서 두 가지 '어디에'조건을 만드는 방법
- MYSQL 선택 쿼리에서 'INT'유형 데이터에 대해 int 값만 전달해야합니까?
- SQL Server 선택 쿼리 속도가 느림
GROUP BY 및 ROLL UP은 그렇게 작동하지 않습니다.
당신이 요구하는 것은 Excel에서 사소한 일이지만 SQL에서 합계를 얻으려면 SUM이 필요하고 SUM을 사용하려면 그룹의 일부인 모든 중복 줄을 제거해야하므로 GROUP BY가 필요합니다. 그러나 이것은 당신이 원하는 것을 패배시킵니다.유지모든 개별 라인.
아래와 같은 것은 단지 아이디어를 제공하기 위해 창 기능없이 작동합니다. 그러나 확장이 잘되지 않으므로 빠른 수정을하는 것이 더 좋습니다. 이 경우에도 합계가 항상 맨 아래로 이동하도록 다른 열을 사용할 수 있습니다. 행 수 또는 소계 수에 따라 이것이 커질수록 창 함수로 이동하고 다양한 합계를 끝에 통합하거나 응용 프로그램/보고서에 표시하는 것이 좋습니다.