В настоящее время у меня есть страница asp.net, которая получает данные из этого представления и в процентах изменяет текст поля суммы.Это означает, что если пользователь достигает определенного процента, он получает определенную сумму поощрения.
Однако, я в настоящее время делаю это в своей программе, однако, для целей отчетности я хочу иметь возможность сделать это прямо в SQL,а не на моей странице asp.net.
я пытаюсь сделать что-то вроде того, если процентный столбец = от 65 до 70 процентов, тогда сумма столбца = 50, если процентный столбец = от 70 до 75 процентовстолбец количества = 75
прямо в моем виде данных, а не на моей странице asp.net
If Decimal.Parse(percent.Text) >= 0.65 And percent.Text < 0.7 Then
Amount.Text = 50
ElseIf Decimal.Parse(percent.Text) >= 0.7 And percent.Text < 0.75 Then
Amount.Text = 75
ElseIf Decimal.Parse(percent.Text) >= 0.75 And percent.Text < 0.8 Then
Amount.Text = 200
ElseIf Decimal.Parse(percent.Text) >= 0.8 And percent.Text < 0.85 Then
Amount.Text = 500
ElseIf Decimal.Parse(percent.Text) >= 0.85 And percent.Text < 0.9 Then
Amount.Text = 625
ElseIf Decimal.Parse(percent.Text) >= 0.9 And percent.Text < 0.95 Then
Amount.Text = 750
ElseIf Decimal.Parse(percent.Text) >= 0.95 And percent.Text < 1.0 Then
Amount.Text = 1000
Вот мой запрос на просмотр, я почти хочу добавить оператор if, но яне уверен, что это лучший способ сделать это.
SELECT TOP (100) PERCENT SUM(yes) AS Countreported, SUM(no) AS Countnotreported, SUM(yes) + SUM(no) AS count, BMM, BYYYY, userid, SUM(pax)
AS party, CAST(SUM(yes) AS decimal(4, 1)) / (SUM(yes) + SUM(no)) AS percentage
FROM (SELECT SUM(CASE WHEN [insreported] IS NULL THEN 0 WHEN [insreported] = 'YES' THEN 1 ELSE 0 END) AS yes,
SUM(CASE WHEN [insreported] IS NULL THEN 1 WHEN [insreported] = 'YES' THEN 0 ELSE 1 END) AS no, CASE WHEN USERID = 'chrisn' OR
USERID = 'CHRISN' THEN 'chrism' ELSE USERID END AS userid, dbo.agent_insurance_incentive_data.BMM,
dbo.agent_insurance_incentive_data.BYYYY, SUM(dbo.agent_insurance_incentive_data.PARTY) AS pax,
dbo.incentive_agents.department
FROM dbo.agent_insurance_incentive_data LEFT OUTER JOIN
dbo.incentive_agents ON dbo.agent_insurance_incentive_data.USERID = dbo.incentive_agents.agent
WHERE (dbo.agent_insurance_incentive_data.DYYYY >= '2009') AND (dbo.agent_insurance_incentive_data.BYYYY > 2008)
GROUP BY dbo.agent_insurance_incentive_data.USERID, dbo.agent_insurance_incentive_data.BMM, dbo.agent_insurance_incentive_data.BYYYY,
dbo.agent_insurance_incentive_data.DMM, dbo.agent_insurance_incentive_data.DYYYY, dbo.incentive_agents.department)
AS derived
WHERE (userid IN
(SELECT agent
FROM dbo.incentive_agents AS incentive_agents_1)) OR
(userid = 'chrisn')
GROUP BY BMM, BYYYY, userid
ORDER BY userid, BYYYY, BMM