合并记录

时间:2009-12-24 06:57:44

标签: sql-server-2005

我正在使用ASP.Net中的一个项目,我正在使用SQL Server 2005.我的问题是这样的:

我有两张桌子。

表A:哪些字段有ID和类别(ID是主键) 表B:其中包含字段ID,CategoryID,Item

有一种关系A:ID ----> B.CaregoryID

让我们添加一些记录。

表A:
ID类别
1本书籍
2种水果
3种蔬菜

表B:
ID类别ID档案
1 1 Rytham of Music
2 1我的传记
3 1 Jungal Book
4个2苹果
5 2 Orenge
6 2 Pinnaple
7个3菠菜

就像那样,有两张桌子和他们的记录。

我想查询类似于我的最终输出必须在temparary表中,如下所示

ID MergeItems
1 书籍 - 来自表A
1 Rytham of Music
2我的传记
3 Jungal Book
2 水果 - 来自表A
苹果4
5 Orenge
6 Pinnaple
3 蔬菜 - 来自表A
7个菠菜

我想在ASP.Net

中的下拉控件中显示此输出

我想在sql Server 2005中进行查询。如果你知道请为我做好准备

谢谢。

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找UNION ALL

DECLARE @TableA TABLE(
        ID INT,
        Category VARCHAR(50)
)

INSERT INTO @TableA (ID,Category) SELECT 1, 'Books'
INSERT INTO @TableA (ID,Category) SELECT 2, 'Fruits'
INSERT INTO @TableA (ID,Category) SELECT 3, 'Vegetables'

DECLARE @TableB TABLE(
        ID INT,
        CategoryID INT,
        Item VARCHAR(50)
)


INSERT INTO @TableB (ID,CategoryID,Item) SELECT 1,1,'Rytham of Music'
INSERT INTO @TableB (ID,CategoryID,Item) SELECT 2,1,'My Biography'
INSERT INTO @TableB (ID,CategoryID,Item) SELECT 3,1,'Jungal Book'
INSERT INTO @TableB (ID,CategoryID,Item) SELECT 4,2,'Apple'
INSERT INTO @TableB (ID,CategoryID,Item) SELECT 5,2,'Orenge'
INSERT INTO @TableB (ID,CategoryID,Item) SELECT 6,2,'Pinnaple'
INSERT INTO @TableB (ID,CategoryID,Item) SELECT 7,3,'Spinach'

SELECT  ID,
        MergedCategory
FROM    (
            SELECT  ID,
                    Category + ' -- From TableA' MergedCategory,
                    CAST(ID AS VARCHAR(10)) + '\' AS CategoryID
            FROM    @TableA
            UNION ALL
            SELECT  ID,
                    Item,
                    CAST(CategoryID AS VARCHAR(10)) + '\' + CAST(ID AS VARCHAR(10)) + '\'
            FROM    @TableB
        ) sub
ORDER BY CategoryID