Запрос SQL Server GROUP BY с помощью Где - PullRequest
0 голосов
/ 22 июля 2011

У меня есть таблица tblEvents со столбцами dEvent_Date, dEvent_Time, tEvent_Emp_Code_num

Я должен сгруппировать все даты и получить минимальное время для каждой из них.

Например, я написал ниже запрос, но ничего не напечатано.

SELECT dEvent_Date, MIN(dEvent_Time) as minTime 
FROM tblEvents 
WHERE
     tEvent_Emp_Code_num = 26 AND dEvent_Date = 11/18/2010 
GROUP BY dEvent_Date

После этого я проверил приведенный ниже запрос, он работает, но печатает все дни, мне нужны только данные указанной даты.

SELECT dEvent_Date, MIN(dEvent_Time) as minTime 
FROM tblEvents 
WHERE tEvent_Emp_Code_num = 26 GROUP BY dEvent_Date

Вы можете мне помочь?

Ответы [ 4 ]

0 голосов
/ 14 сентября 2015

Это будет работать для этого случая:

SELECT dEvent_Date, MIN(dEvent_Time) as minTime 
FROM   tblEvents 
WHERE  tEvent_Emp_Code_num = 26 
GROUP BY dEvent_Date
HAVING  CAST('2015/01/01 00:00:01' AS DATETIME) < dEvent_Date 
        AND dEvent_Date >  CAST('2015/05/05 00:00:01' AS DATETIME)

(Ссылки) как использовать ключевое слово, имеющее:

http://www.w3schools.com/sql/sql_having.asp

https://msdn.microsoft.com/en-us/library/ms180199.aspx

0 голосов
/ 22 июля 2011

если db равно dql, это форматат для проверки значения в БД ,,,,,

или иначе u ,,,, вы должны преобразовать значение даты в '2010-11-18', как

$date   =   date('Y-m-d',strtotime(11/18/2010)); 

   dEvent_Date = $date 
0 голосов
/ 22 июля 2011

У меня была та же проблема, и я использовал функцию приведения в MySQL, где мой запрос выглядит как

CREATE VIEW v_a AS SELECT
  tblEvents .*,
  EXTRACT(YEAR FROM dEvent_Date) AS 'year',
  EXTRACT(MONTH FROM dEvent_Date) AS 'month',
  DAYOFMONTH(dEvent_Date) AS 'day'
FROM tblEvents WHERE tEvent_Emp_Code_num = 26;
SELECT
  v.year,
  v.month,
  v.day,
  count(v.id)
FROM v_a AS v
GROUP BY v.year,v.month,v.day

для SQL Server. Вы можете использовать функцию CONVERT

SELECT CONVERT(VARCHAR(8), GETDATE(), 4) AS [DD.MM.YY]

или функцию приведения

SELECT CAST(YEAR(GETDATE()) AS VARCHAR(4)) 

возможно, следующий пост более полезен

Функция Get Only Only

0 голосов
/ 22 июля 2011

Как ваша дата хранится в таблице?Формат даты по умолчанию для MySQL: гггг-мм-дд.Кроме того, вы должны заключить дату в одинарные кавычки.

И вы должны искать как:

, где dEvent_Date = '2010/11/18'

, если вы не указали формат даты.

...