일반적인 주문 헤더 및 주문 라인 테이블을 보유하고 있습니다. 이 단순화 된 DDL이다 (이 이상의 필드가 있지만이 질문에 중요하지 않음)제품 별 최종 거래 얻기
CREATE TABLE [dbo].[OrderHeader](
[id] [nvarchar](50) NOT NULL,
[voucherDate] [datetime] NOT NULL,
[voucherNumber] [bigint] NOT NULL,
[voucherType] [nvarchar](50) NOT NULL,
[account] [nvarchar](50) NULL,
[po] [nvarchar](50) NULL,
[total] [decimal](19, 3) NOT NULL,
[status] [tinyint] NOT NULL,
[discount] [decimal](19, 3) NOT NULL,
[rounding] [decimal](19, 3) NULL,
[net] [decimal](19, 3) NOT NULL,
[warehouse] [nvarchar](50) NULL,
CONSTRAINT [PK_OrderHeader] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
CREATE TABLE [dbo].[OrderLine](
[header] [nvarchar](50) NOT NULL,
[line] [int] NOT NULL,
[item] [nvarchar](50) NULL,
[quantity] [decimal](19, 3) NOT NULL,
[price] [decimal](19, 3) NOT NULL,
[discount] [decimal](19, 3) NOT NULL,
[total] [decimal](19, 3) NOT NULL,
CONSTRAINT [PK_OrderLine] PRIMARY KEY CLUSTERED
(
[header] ASC,
[line] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
I, 그것은 각 창고에 반환하는 경우 SQL 서버에서 쿼리를 실행하는 항목 당 마지막 주문 라인이 필요합니다.
그렇게warehouse 1
item1, Order20, line 3
item2, Order 40, line 1
warehouse 2
item1, Order25, line 1
등 ... 같은웨어 하우스의
여러 개의 주문이 동일한 항목에 대해 동일한 날짜에 존재할 수는,이 경우에는 최신 순서해야합니다. 나는 orderDate에 대해 DateTime을 사용하지 않고 있으며 단지 날짜 일뿐입니다.
쉬운 방법이 있나요?
아직 검색어를 작성하려 했습니까? 나는 SO에서 정말로 기대되기 때문에뿐만 아니라 당신에게 대답을 얻는 것이 더 쉽기 때문에 이것을 묻습니다. –
테이블에 _columns_가 있지만 필드는 없습니다. – jarlh