SQL Server 2008查询1行日期转换为列
我的问题是SQL Server 2008查询1行日期转换为列,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我的问题是 SELECT UB.UnitID as UnitID, UB.Name as Unit, US.UnitID as UnitID, US.Name as Unit, UP.UnitID as UnitID, UP.Name as Unit FROM Product PR INNER JOIN Unit UB on UB.UnitID = PR.BaseUnitID INNER JOIN Unit US on US.UnitID = PR.Seco
SELECT
UB.UnitID as UnitID, UB.Name as Unit, US.UnitID as UnitID, US.Name as Unit,
UP.UnitID as UnitID, UP.Name as Unit
FROM
Product PR
INNER JOIN
Unit UB on UB.UnitID = PR.BaseUnitID
INNER JOIN
Unit US on US.UnitID = PR.SecondaryUnitID
INNER JOIN
Unit UP on P.UnitID = PR.PrimaryUnitID
where
Productid = 1
输出:
BaseUnitID BaseUnit SecondaryUnitID SecondaryUnit PrimaryUnitID PrimaryUnit
---------- ------- ---------------- ------------ ------------- ------------
1 PCS 2 CTN 3 TRAY
SQL查询转换为此表单
UnitID Unit
------ ----
1 PCS
2 CTN
3 TRAY
我不确定这是否是你所需要的,但也许它能帮助你
SELECT BaseUnitID UnitID, BaseUnit Unit FROM tbl UNION ALL
SELECT SecondaryUnitID, SecondaryUnit FROM tbl UNION ALL
SELECT PrimaryUnitID, PrimaryUnit FROM tbl
我不确定这是否是你所需要的,但也许它能帮助你
SELECT BaseUnitID UnitID, BaseUnit Unit FROM tbl UNION ALL
SELECT SecondaryUnitID, SecondaryUnit FROM tbl UNION ALL
SELECT PrimaryUnitID, PrimaryUnit FROM tbl
给定问题编辑版本中的查询,您可以在联接条件中使用
或或中的执行所需操作:
SELECT U.UnitID as UnitID, U.Name as Unit
FROM Product PR inner join
Unit U
on U.UnitID in (PR.BaseUnitID, PR.SecondaryUnitID, PR.PrimaryUnitID)
where Productid = 1;
这是正确的查询如果问题的编辑版本中有查询,您可以在联接条件中使用
中的
或
或
执行所需操作:
SELECT U.UnitID as UnitID, U.Name as Unit
FROM Product PR inner join
Unit U
on U.UnitID in (PR.BaseUnitID, PR.SecondaryUnitID, PR.PrimaryUnitID)
where Productid = 1;
这是正确的查询欢迎使用堆栈溢出。请提供迄今为止您尝试过的内容。欢迎使用堆栈溢出。请提供您迄今为止尝试过的内容。+1。但我认为总是将
用作列别名是个好主意。我的查询是------选择UB.UnitID作为UnitID,UB.Name作为Unit,US.UnitID作为UnitID,US.Name作为UnitID,UP.UnitID作为UnitID,UP.Name作为单位从产品PR内部连接单位UB到UB.UnitID=PR.BaseUnitID内部连接单位US到US.UnitID=PR.SecondaryUnitID内部连接单位UP到UP.UnitID=PR.PrimaryUnitID+1。但我认为总是将用作列别名是个好主意。我的查询是------选择UB.UnitID作为UnitID,UB.Name作为Unit,US.UnitID作为UnitID,US.Name作为UnitID,UP.UnitID作为UnitID,UP.Name as Unit来自产品PR内部连接单元UB on UB.UnitID=PR.BaseUnitID内部连接单元US on US.UnitID=PR.SecondaryUnitID内部连接单元UP on UP.UnitID=PR.PrimaryUnitID