sql行数成一行

时间:2013-07-03 14:12:14

标签: sql sql-server-2012

我有两个包含这些列的表:

表1

ID ,   INT
NAME,  NVARCHA
ROLL,  INT

表2

ID,        INT 
NAME_ID,   INT
REAL_DATE, Date
H7_00,     BIT
H8_00,     BIT

我希望得到一份H7_00这样的名字列表,为期3个月。

Real_Date | Name| Name | Name | Name | Name | Name | Name |Name |Name |Name |Name   
Real_Date | Name    | Name |
Real_Date | Name| Name | Name | Name    
Real_Date | Name    | Name | Name | Name |Name| Name | Name | Name  

以下是我试过的内容

SELECT 
    Hours.Real_Date, Person.Name ,Person.Role 
FROM  
    Person
INNER JOIN
    Hours ON Hours.P_ID = Person.ID
WHERE 
(Hours.Real_Date >=  getDate())
    AND
(Hours.Real_Date <=  getDate() + 90)
    (Hours.H7_00 = 1   AND  Hours.H7_00_Free = 1)
    AND 
    (Person.Role = 1)
ORDER BY 
    Real_Date, Name

这就是我得到的

 2013-12-12   AAAA  1
 2013-12-12   BBBB  1           
 2013-12-12   CCCC  1

如果有人有解决方案,我会非常感激,

并提前感谢回复

1 个答案:

答案 0 :(得分:0)

在SQL-Server(TSQL)中,您可以使用DATEADD (datepart , number , date)

进行尝试
(DATEADD(DAY,0,Hours.Real_Date) >= DATEADD(DAY,0,getDate()))
AND
(DATEADD(DAY,0,Hours.Real_Date) <= DATEADD(DAY,+90,getDate()))