SQL Server 2008 R2查询需要指导
输出:SQL Server 2008 R2查询需要指导,sql,sql-server,select,sql-server-2008-r2,Sql,Sql Server,Select,Sql Server 2008 R2,输出: SELECT A.First_Name, b.First_Name, A.DOB, B.DOB, A.Token, B.Token, DATEDIFF(YEAR, A.DOB, B.DOB) - (CASE WHEN DATEADD(YY, DATEDIFF(YEAR, A.DOB, B.DOB), A.DOB) > Getdate() THEN 1
SELECT
A.First_Name, b.First_Name, A.DOB, B.DOB, A.Token, B.Token,
DATEDIFF(YEAR, A.DOB, B.DOB) -
(CASE
WHEN DATEADD(YY, DATEDIFF(YEAR, A.DOB, B.DOB), A.DOB) > Getdate()
THEN 1
ELSE 0 END) 'Age Difference'
FROM
Boys_details A , Girls_details B
WHERE
a.Cast = 'brahmin'
AND A.City = 'pune'
AND a.Height >= B.Height
AND a.Salary >= B.salary
我不希望输出值为负值,但它仍然是令人满意的条件之一,如身高和工资,但如果年龄的话,他们失败了。所以一个失败的人不想在o/p中显示它们,请帮助我。在子查询中如何
Nilesh Ruchita 1973-01-21 1964-12-01 9 89 -9
Nilesh Smitha 1973-01-21 1976-07-30 9 77 3
Nilesh Richa 1973-01-21 1974-04-21 9 2 1
在子查询中如何
Nilesh Ruchita 1973-01-21 1964-12-01 9 89 -9
Nilesh Smitha 1973-01-21 1976-07-30 9 77 3
Nilesh Richa 1973-01-21 1974-04-21 9 2 1
只需将您的案例陈述添加到where子句:
SELECT *
FROM
(
SELECT A.First_Name,
b.First_Name,
A.DOB,
B.DOB,
A.Token,
B.Token,
DATEDIFF(YEAR,A.DOB,B.DOB) -
(CASE WHEN DATEADD(YY,DATEDIFF(YEAR,A.DOB,B.DOB),A.DOB)> Getdate()
THEN 1
ELSE 0
END) AS [Age Difference]
from Boys_details A ,
Girls_details B
where a.Cast='brahmin' and
A.City='pune' and
a.Height >= B.Height and
a.Salary>=B.salary
) s
WHERE [Age Difference] >= 0
只需将您的案例陈述添加到where子句:
SELECT *
FROM
(
SELECT A.First_Name,
b.First_Name,
A.DOB,
B.DOB,
A.Token,
B.Token,
DATEDIFF(YEAR,A.DOB,B.DOB) -
(CASE WHEN DATEADD(YY,DATEDIFF(YEAR,A.DOB,B.DOB),A.DOB)> Getdate()
THEN 1
ELSE 0
END) AS [Age Difference]
from Boys_details A ,
Girls_details B
where a.Cast='brahmin' and
A.City='pune' and
a.Height >= B.Height and
a.Salary>=B.salary
) s
WHERE [Age Difference] >= 0