Usuário com melhor resposta
comparadação de data com status

Pergunta
-
Respostas
-
Carlos,
No SQL Server você terá que utilizar o CASE ou IF, o IIF não é compatível com o SQL Server.
Veja os exemplos:
USE AdventureWorks; GO SELECT ProductNumber, Category = CASE ProductLine WHEN 'R' THEN 'Road' WHEN 'M' THEN 'Mountain' WHEN 'T' THEN 'Touring' WHEN 'S' THEN 'Other sale items' ELSE 'Not for sale' END, Name FROM Production.Product ORDER BY ProductNumber; GO
USE AdventureWorks; GO SELECT ProductNumber, Name, 'Price Range' = CASE WHEN ListPrice = 0 THEN 'Mfg item - not for resale' WHEN ListPrice < 50 THEN 'Under $50' WHEN ListPrice >= 50 and ListPrice < 250 THEN 'Under $250' WHEN ListPrice >= 250 and ListPrice < 1000 THEN 'Under $1000' ELSE 'Over $1000' END FROM Production.Product ORDER BY ProductNumber ; GO
EXECUTE Production.uspGetList '%Bikes%', 700, @compareprice OUT, @cost OUTPUT IF @cost <= @compareprice BEGIN PRINT 'These products can be purchased for less than $'+RTRIM(CAST(@compareprice AS varchar(20)))+'.' END ELSE PRINT 'The prices for all products in this category exceed $'+ RTRIM(CAST(@compareprice AS varchar(20)))+'.'DECLARE @compareprice money, @cost money
-
Carlos, tente isso:
Code SnippetSELECT CASE WHEN Cliente.DtInicio <= [DtFim]
And Cliente.DtFim > [DtFim] THEN 'Ativo' ELSE 'Cancelado'
END AS Status FROM TabelaPara vc passar isso como parâmetro a consulta deverá ser colocada em uma stored procedure, ou então vc poderá fazer direto na aplicação.
[ ]s.
Todas as Respostas
-
Carlos,
No SQL Server você terá que utilizar o CASE ou IF, o IIF não é compatível com o SQL Server.
Veja os exemplos:
USE AdventureWorks; GO SELECT ProductNumber, Category = CASE ProductLine WHEN 'R' THEN 'Road' WHEN 'M' THEN 'Mountain' WHEN 'T' THEN 'Touring' WHEN 'S' THEN 'Other sale items' ELSE 'Not for sale' END, Name FROM Production.Product ORDER BY ProductNumber; GO
USE AdventureWorks; GO SELECT ProductNumber, Name, 'Price Range' = CASE WHEN ListPrice = 0 THEN 'Mfg item - not for resale' WHEN ListPrice < 50 THEN 'Under $50' WHEN ListPrice >= 50 and ListPrice < 250 THEN 'Under $250' WHEN ListPrice >= 250 and ListPrice < 1000 THEN 'Under $1000' ELSE 'Over $1000' END FROM Production.Product ORDER BY ProductNumber ; GO
EXECUTE Production.uspGetList '%Bikes%', 700, @compareprice OUT, @cost OUTPUT IF @cost <= @compareprice BEGIN PRINT 'These products can be purchased for less than $'+RTRIM(CAST(@compareprice AS varchar(20)))+'.' END ELSE PRINT 'The prices for all products in this category exceed $'+ RTRIM(CAST(@compareprice AS varchar(20)))+'.'DECLARE @compareprice money, @cost money
-
Carlos, tente isso:
Code SnippetSELECT CASE WHEN Cliente.DtInicio <= [DtFim]
And Cliente.DtFim > [DtFim] THEN 'Ativo' ELSE 'Cancelado'
END AS Status FROM TabelaPara vc passar isso como parâmetro a consulta deverá ser colocada em uma stored procedure, ou então vc poderá fazer direto na aplicação.
[ ]s.