Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
| Author |
Topic |
|
csri
Starting Member
45 Posts |
Posted - 2008-08-06 : 23:23:34
|
| Dear All I have two tables Roles(MnemId,RoleID) and Ip(Ipaddress,MnemId).Roles TableMnemId RoleId1 12 23 34 3NULL NULLIp TableIpaddress MnemId10.10.10.1 110.10.10.2 210.10.10.3 310.10.10.4 4null 5null 6I have to generate output like the below oneRequired Output:<terminal> <ipaddress>10.10.10.1</ipaddress> <Transactionpermission> <Transactiongroup>1</Transactiongroup> <Transactiongroup>2</Transactiongroup> <Transactiongroup>3</Transactiongroup> <Transactiongroup>4</Transactiongroup> </Transactionpermission> <ipaddress>10.10.10.2</ipaddress> <Transactionpermission> <Transactiongroup>1</Transactiongroup> <Transactiongroup>2</Transactiongroup> <Transactiongroup>3</Transactiongroup> <Transactiongroup>4</Transactiongroup> </Transactionpermission> <ipaddress>10.10.10.3</ipaddress> <Transactionpermission> <Transactiongroup>1</Transactiongroup> <Transactiongroup>2</Transactiongroup> <Transactiongroup>3</Transactiongroup> <Transactiongroup>4</Transactiongroup> </Transactionpermission> <ipaddress>10.10.10.4</ipaddress> <Transactionpermission> <Transactiongroup>1</Transactiongroup> <Transactiongroup>2</Transactiongroup> <Transactiongroup>3</Transactiongroup> <Transactiongroup>4</Transactiongroup> </Transactionpermission></terminal>My select statement is select ipaddress,(select case when ipaddress is null then null else r.mnemid end as 'Transactiongroup' from ip i,roles r where i.mnemid=r.mnemid for xml path(''),root('Transactionpermission'),type)from ip for xml path(''),root('terminal')output of above select statement <terminal> <ipaddress>10.10.10.1</ipaddress> <Transactionpermission> <Transactiongroup>1</Transactiongroup> <Transactiongroup>2</Transactiongroup> <Transactiongroup>3</Transactiongroup> <Transactiongroup>4</Transactiongroup> </Transactionpermission> <ipaddress>10.10.10.2</ipaddress> <Transactionpermission> <Transactiongroup>1</Transactiongroup> <Transactiongroup>2</Transactiongroup> <Transactiongroup>3</Transactiongroup> <Transactiongroup>4</Transactiongroup> </Transactionpermission> <ipaddress>10.10.10.3</ipaddress> <Transactionpermission> <Transactiongroup>1</Transactiongroup> <Transactiongroup>2</Transactiongroup> <Transactiongroup>3</Transactiongroup> <Transactiongroup>4</Transactiongroup> </Transactionpermission> <ipaddress>10.10.10.4</ipaddress> <Transactionpermission> <Transactiongroup>1</Transactiongroup> <Transactiongroup>2</Transactiongroup> <Transactiongroup>3</Transactiongroup> <Transactiongroup>4</Transactiongroup> </Transactionpermission> <ipaddress>null</ipaddress> <Transactionpermission> <Transactiongroup>1</Transactiongroup> <Transactiongroup>2</Transactiongroup> <Transactiongroup>3</Transactiongroup> <Transactiongroup>4</Transactiongroup> </Transactionpermission> <ipaddress>null</ipaddress> <Transactionpermission> <Transactiongroup>1</Transactiongroup> <Transactiongroup>2</Transactiongroup> <Transactiongroup>3</Transactiongroup> <Transactiongroup>4</Transactiongroup> </Transactionpermission></terminal>If ipaddress is null then <Transactionpermission> <Transactiongroup>1</Transactiongroup> <Transactiongroup>2</Transactiongroup></Transactionpermission> must not be displayed.Can any one please tell me how to modify the above query so that I get the required output.urgent.please replyThankscsri |
|
|
dexter.knudson
Constraint Violating Yak Guru
260 Posts |
Posted - 2008-08-07 : 01:12:06
|
| (select r.mnemid as 'Transactiongroup' from ip i,roles r where i.mnemid=r.mnemid for xml path(''),root('Transactionpermission'),type)from ip for xml path(''),root('terminal')where ipaddress is not null ? |
 |
|
|
|
|
|
|
|