Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL-从另一个表获取值_Sql Server - Fatal编程技术网

Sql server SQL-从另一个表获取值

Sql server SQL-从另一个表获取值,sql-server,Sql Server,对象资源表: ObjectID|Resource 01 | Resource A 01 | Resource B 对象可用性表: AvailID|DayName 01 | Monday 02 | Tuesday ObjectID|Resource Name|Day 01 |ResourceA | 01 ObjectResourceAvailability表: AvailID|DayName 01 | Monday 02

对象资源表:

ObjectID|Resource

01     | Resource A
01     | Resource B
对象可用性表:

AvailID|DayName

01     | Monday
02     | Tuesday
ObjectID|Resource Name|Day

01      |ResourceA    | 01
ObjectResourceAvailability表:

AvailID|DayName

01     | Monday
02     | Tuesday
ObjectID|Resource Name|Day

01      |ResourceA    | 01
理想情况下,它应该显示

ObjectID|Resource Name|DayName

01      |ResourceA, ResourceB    | Monday, Tuesday
我还连接了具有相同ID的列。 如何使最终结果显示为周一而不是01?我已尝试选择ObjAvail.DayName并更改连接字符串解决方案,但在select列表中,我始终得到无效列,因为它既不包含在聚合函数中,也不包含在GROUP BY子句中

这是帮助我实现连接列的解决方案

  SELECT
        t1.oid
            ,STUFF(
                       (SELECT
                            ', ' + t2.resource
                            FROM objectresource t2
                            WHERE t1.oid=t2.oid
                            ORDER BY t2.resource
                            FOR XML PATH(''), TYPE
                       ).value('.','varchar(max)')
                       ,1,2, ''
                  ) AS Resources
                  ,STUFF(
    (
        SELECT
            ',',
            CAST(availyid AS VARCHAR)
        FROM objectAvail t2
        WHERE t1.oid = t2.oId
        FOR XML PATH('')
    ), 1, 1, '') as [Days]
        FROM objectresource t1
        GROUP BY t1.oid
我让它工作了(:

我让它工作了(:


不要用两个db.mysql和sql server来标记您的问题?您的第二个STUFF/FOR XML路径没有从对象可用性表中提取DayName列。选择“,”,CAST(availyid为VARCHAR)应该是选择“,”+DayName首先,将星期一设置为一周的第一天(请参阅此链接)然后我会根据当天返回到输出的数字写一个case语句week@SeanR我不能这样做,因为Dayname来自另一个表。我更改了ObjectAvail表中的SELECT“,”+Dayname,它会给我相同的无效错误。不要用两个db.mysql和sql server标记您的问题?您的第二件事/FORXML PATH没有从对象可用性表中提取DayName列。选择“,”,强制转换(availyid为VARCHAR)应为选择“,”+DayName首先,将星期一设置为一周的第一天(请参见此链接)然后我会根据当天返回到输出的数字写一个case语句week@SeanR我无法执行此操作,因为Dayname来自另一个表。我已更改ObjectAvail表中的SELECT“,”+Dayname,它会给我相同的无效错误