SQL-запрос для вычисления процента между двумя датами

Я хочу рассчитать процент между двумя датами. В приведенной ниже таблице показаны значения двухдневного счета. Даты считываются из двух текстовых полей (txtStart и txtEnd).

slNo  productName  count1  count2
....  ...........  .....   ......
1     A             50      20
2     B             30      39
3     C             20      23
4     D             15      34
5     E             18      45

Мой запрос:

SELECT  slNo  
        productName  
        count1, count2
        cast((count1* 100.0) / (DATEDIFF(day, @start, @end) * 250)) AS  
        Percentage1, cast((count2* 100.0) / (DATEDIFF(day, @start, @end) 
        * 250)) AS Percentage2 FROM  dbo.tblPercentage

При использовании вышеуказанного запроса я получаю одну ошибку. ошибка: "Incorrect parameter count in the call to native function 'DATEDIFF'"

Как я могу получить разницу дат и применить к вышеуказанному запросу sql.

счетчик 250 в день рассчитывается как 100%. В приведенной выше таблице показано количество двух дней. Таким образом, 2 * 250 считается 100%. Если считать 3 дня, то будет 3 * 250. Так что помогите мне рассчитать процент с помощью sql-запроса. Спасибо


person Reshma    schedule 18.03.2015    source источник
comment
Нет. 10%, потому что в приведенной выше таблице указано значение за два дня. Таким образом, мы должны рассчитать процент, используя 2 * 250.   -  person Reshma    schedule 18.03.2015
comment
@Reshma вы хотите получить общее количество дней из двух дат (дата начала, дата окончания)?   -  person Khurram Ali    schedule 18.03.2015
comment
@KhurramAli: Нет. Я хочу получить общее количество товаров между двумя датами. Это я вычислил и сохранил над таблицей. Нет, я хочу рассчитать процент от этого количества на основе разницы в датах * 250   -  person Reshma    schedule 18.03.2015
comment
@KhurramAli: Я обновил свой вопрос. Я получаю новую ошибку. Помоги мне, пожалуйста.   -  person Reshma    schedule 18.03.2015
comment
@Reshma что такое столбцы count1, count2 ›?   -  person Khurram Ali    schedule 18.03.2015


Ответы (1)


Может быть, вы это ищете, если я правильно понимаю вашу проблему

SELECT  slNo  
        productName  
        count, 
        cast(((DATEDIFF(day,'2014-08-05','2014-06-05') * 250.0) / 250) AS decimal(9, 3)) Percentage1 
FROM  dbo.tblPercentage

Примечание. Вы можете заменить даты параметрами startdate и enddate, которые вы получаете из таких текстовых полей.

DATEDIFF(day,@startdate,@enddate)
person Khurram Ali    schedule 18.03.2015
comment
@ Кууррам Али: в ответе выше, как я могу получить процент отсчета? - person Reshma; 18.03.2015
comment
SELECT slNo productName count, cast ((count * 250.0) / (DATEDIFF (day, '2014-08-05', '2014-06-05') * 250.0)) AS decimal (9, 3)) Percentage1 FROM dbo. tblPercentage - person Reshma; 18.03.2015
comment
@Reshma: Если вы четко опишете, чего действительно хотите, я вам легко могу помочь - person Khurram Ali; 18.03.2015
comment
@Reshma Измените свой вопрос, добавьте необходимые детали, такие как схема вашей таблицы и образцы данных, а также то, что вы действительно хотите с выходными данными образца ... было бы лучше, если вы можете предоставить sqlfiddle - person Khurram Ali; 18.03.2015