2015-03-13 87 views
0

這個問題是在我前面的問題而建,其可被看作返回匹配的記錄從兩個表:SQL以某種方式

SQL Server Query: Get a List of Columns Which Don't Exist in Another Table's Field

我在splanning_restricted_attributes表中的以下數據

GROUPID 1 = RoomArea,Disability,Shower編輯不CSV;每一個/行**)

GROUPID 3 = Water,Shower不編輯CSV;一個每行)

而且我的更新查詢:

select COLUMN_NAME 
from INFORMATION_SCHEMA.COLUMNS 
where TABLE_NAME='Splanning_RoomData2' 
AND COLUMN_NAME NOT IN 
    (
     SELECT ATTRIBUTENAME 
     FROM SPLANNING_RESTRICTED_ATTRIBUTES 
     where groupid != @session_groupid 
    ) 

這只是我的查詢類型的作品並沒有在當兩個(或更多)組被允許訪問相同的屬性會發生什麼因素。作爲執行,當會話groupid是1,只有當會話的groupid爲3

如何修改,因此如果GROUPID是1或3,那麼它應該與其他屬性一起返回Shower水這個查詢只RoomArea,Disability返回?

謝謝!

*編輯*當會話groupid爲1或3時,查詢應返回適當的值。因此,如果groupid爲1,則返回:RoomArea,Disability,Shower;如果GROUPID是3,然後返回Water,Shower

*編輯2:DDL及以下*

[SPLANNING_ROOMDATA2] 
[RoomArea] [nvarchar](254) NULL, 
[Disability] [nvarchar](254) NULL, 
[Shower] [nvarchar](254) NULL, 
[Water] [nvarchar](254) NULL, 


[splanning_restricted_attributes] 
[attributename] [nvarchar](50) NOT NULL, 
[groupid] [int] NOT NULL, 

[splanning_groups] 
[groupid] [int] IDENTITY(1,1) NOT NULL, 
[groupname] [nvarchar](50) NOT NULL, 

因此,無論SPLANNING_ROOMDATA2splanning_groups表將在splanning_restricted_attributes表表示以這樣的方式,每個一些更多的信息splanning_restricted_attributes的行將有一個groupid,每行有一個attributename

+0

你的問題並不十分清楚。你想做什麼? – 2015-03-13 14:32:45

+0

當sessionid爲1或3時,查詢應返回適當的值。因此,如果groupid爲1,則返回:RoomArea,Disability,Shower;如果groupid是3則返回水,淋浴 – IrfanClemson 2015-03-13 14:35:04

+0

我相信這是完全清楚,但沒有關於此表的信息,我們不能幫助很多。給我們一些工作。 – 2015-03-13 14:37:30

回答

0

沒關係。我結束了做聯合查詢:

cmd.CommandText = 
@"select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where 
TABLE_NAME='Splanning_RoomData2' AND COLUMN_NAME NOT IN 
    (SELECT ATTRIBUTENAME FROM SPLANNING_RESTRICTED_ATTRIBUTES) 
    UNION (SELECT ATTRIBUTENAME FROM SPLANNING_RESTRICTED_ATTRIBUTES 
    where groupid = @session_groupid)"; 

而且我認爲結果如預期。唷!