資料表結構;
tblcompany:![]()
Create Table tblproduct
(productid Int,
title Nvarchar(100),
companyid Int)
Insert tblproduct Select 1, N'公司1的產品1', 1
Union All Select 2, N'公司1的產品2', 1
Union All Select 3, N'公司2的產品1', 2
Union All Select 4, N'公司2的產品2', 2
Union All Select 5, N'公司2的產品3', 2
Union All Select 6, N'公司3的產品1', 3
Union All Select 7, N'公司3的產品2', 3
GO
--方法一﹕
Select * From tblproduct A Order By (Select Count(*) From tblproduct Where companyid=A.companyid And productid<=A.productid)
Go
--方法二﹕
Select B.productid,title,companyid From
(Select ID=(Select Count(*) From tblproduct Where companyid=A.companyid And productid<=A.productid),* From tblproduct A)B
Order By ID
GO
Drop Table tblproduct
tblcompany:
companyid title
1 公司1
2 公司2
3 公司3
tblproduct:
productid title companyid
1 公司1的產品1 1
2 公司1的產品2 1
3 公司2的產品1 2
4 公司2的產品2 2
5 公司2的產品3 2
6 公司3的產品1 3
7 公司3的產品2 3
想要的結果是:
每個公司的產品不要在一起
查詢出來的結果如下:
productid title companyid
1 公司1的產品1 1
3 公司2的產品1 2
6 公司3的產品1 3
2 公司1的產品2 1
4 公司2的產品2 2
7 公司3的產品2 3
5 公司2的產品3 2
由一天到晚游泳的魚Paoluo提供答案如下﹕

Create Table tblproduct
(productid Int,
title Nvarchar(100),
companyid Int)
Insert tblproduct Select 1, N'公司1的產品1', 1
Union All Select 2, N'公司1的產品2', 1
Union All Select 3, N'公司2的產品1', 2
Union All Select 4, N'公司2的產品2', 2
Union All Select 5, N'公司2的產品3', 2
Union All Select 6, N'公司3的產品1', 3
Union All Select 7, N'公司3的產品2', 3
GO
--方法一﹕
Select * From tblproduct A Order By (Select Count(*) From tblproduct Where companyid=A.companyid And productid<=A.productid)
Go
--方法二﹕
Select B.productid,title,companyid From
(Select ID=(Select Count(*) From tblproduct Where companyid=A.companyid And productid<=A.productid),* From tblproduct A)B
Order By ID
GO
Drop Table tblproduct

浙公网安备 33010602011771号