Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / как же так? / 12 сообщений из 12, страница 1 из 1
16.01.2019, 11:26
    #39760177
dermama
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как же так?
Sehr geehrte Damen un Herren

Приветствую

Я написал запрос, который находит разницу между примемом на работу двух сотрудников в секундах, минутах и часах!

Выглядит он следующим образом

SELECT DATEDIFF(ss, allen, ward) seks,
DATEDIFF(mi, allen, ward) mins,
DATEDIFF(hh, allen, ward) hours
FROM (SELECT hiredate allen FROM emp
WHERE ename = 'ALLEN') x,
(SELECT hiredate ward FROM emp
WHERE ename = 'WARD') y
GO

---------------------------------------------
seks mins hours
172800 2880 48

Работает, считает.

Далее, я переделываю запрос

SELECT DATEDIFF(ss, allen, ward) seks,
DATEDIFF(mi, allen, ward) mins,
DATEDIFF(hh, allen, ward) hours
FROM ( SELECT hiredate allen, hiredate ward
FROM emp
WHERE ename = 'ALLEN' AND ename = 'WARD'
) x
GO
однако результат пустые строки, и не понимаю почему
------------------------------------------
seks mins hours



Далее пытаюсь сделать запрос через самообъединение

SELECT DATEDIFF(ss, allen, ward) seks,
DATEDIFF(mi, allen, ward) mins,
DATEDIFF(hh, allen, ward) hours
FROM ((SELECT hiredate allen FROM emp
WHERE ename = 'ALLEN') x
INNER JOIN
(SELECT hiredate ward FROM emp
WHERE ename = 'WARD') y
ON x.ename = y.ename)
GO

здесь я получаю ошибку на столбец ENAME Invalid column name ename, почему?
Заранее благодарю за объяснение в чем я косячу. На что обратить внимание, что я недопонимаю.
...
Рейтинг: 0 / 0
16.01.2019, 11:31
    #39760180
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как же так?
dermama,

как одновременно ename может равняться и 'ALLEN' и 'WARD'??
Неужели не видите нарушение логики?
...
Рейтинг: 0 / 0
16.01.2019, 11:31
    #39760181
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как же так?
dermama,

1. CROSS JOIN
2. ename = 'ALLEN' AND ename = 'WARD' одновременно и то и то?
3. INNER JOIN + ENAME Invalid column name ename - ename выводить в SELECT если используете

ну и всё абсолютная ересь
...
Рейтинг: 0 / 0
16.01.2019, 11:32
    #39760183
Щукина Анна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как же так?
dermamaДалее, я переделываю запрос

Код: sql
1.
2.
3.
4.
5.
...
SELECT hiredate allen, hiredate ward
      FROM emp
	  WHERE ename = 'ALLEN' AND ename = 'WARD'
...
...
Рейтинг: 0 / 0
16.01.2019, 11:34
    #39760185
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как же так?
dermamaздесь я получаю ошибку на столбец ENAME Invalid column name ename, почему?У вас COLLATE базы регистрозависимый? Поле-то, всё-таки, ENAME или ename?
...
Рейтинг: 0 / 0
16.01.2019, 11:35
    #39760187
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как же так?
iapdermamaздесь я получаю ошибку на столбец ENAME Invalid column name ename, почему?У вас COLLATE базы регистрозависимый? Поле-то, всё-таки, ENAME или ename?Да. Это я не по делу написал. Просто в подзапросе у вас такого поля нет, как уже сказали.
...
Рейтинг: 0 / 0
16.01.2019, 11:50
    #39760195
dermama
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как же так?
SELECT DATEDIFF(ss, allen, ward) seks,
DATEDIFF(mi, allen, ward) mins,
DATEDIFF(hh, allen, ward) hours
FROM( SELECT hiredate allen, hiredate ward
FROM emp
WHERE ename = 'ALLEN' OR ename = 'WARD'
) x
GO

--------------------------------------------
seks mins hours
0 0 0
0 0 0



сделал OR и результат так же не радует.

C джойном стыдоба конечно вышла, решил быстро отредактировать....

переделал, однако также результат не радует

SELECT DATEDIFF(ss, allen, ward) seks,
DATEDIFF(mi, allen, ward) mins,
DATEDIFF(hh, allen, ward) hours
FROM (SELECT e1.hiredate allen, e2.hiredate ward
FROM emp e1
INNER JOIN
emp e2
ON e1.empno = e2.empno
WHERE e1.ename = 'ALLEN'
OR e2.ename = 'WARD') x
GO

----------------------------------------

seks mins hours
0 0 0
0 0 0


что то я запутался совсем)
...
Рейтинг: 0 / 0
16.01.2019, 11:52
    #39760196
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как же так?
dermama,

вы наугад пишете?

Код: sql
1.
2.
3.
ON e1.empno = e2.empno
WHERE e1.ename = 'ALLEN'
OR e2.ename = 'WARD' x



равно ename = 'ALLEN' AND ename = 'WARD'
и равно бреду
...
Рейтинг: 0 / 0
16.01.2019, 11:53
    #39760197
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как же так?
точнее не совсем так
ename = 'ALLEN' AND ename = 'WARD' => ename = 'ALLEN' AND ename = 'ALLEN' или второй вариант
...
Рейтинг: 0 / 0
16.01.2019, 12:06
    #39760200
dermama
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как же так?
TaPaK,

SELECT DATEDIFF(ss, allen, ward) seks,
DATEDIFF(mi, allen, ward) mins,
DATEDIFF(hh, allen, ward) hours
FROM (SELECT e1.hiredate allen, e2.hiredate ward
FROM emp e1
INNER JOIN
emp e2
ON e1.deptno = e2.deptno
WHERE e1.ename = 'ALLEN'
AND e2.ename = 'WARD') x
GO
----------------------------------------
seks mins hours
172800 2880 48

через INNER JOIN переделал, просто по номеру отдела сджойнил...
...
Рейтинг: 0 / 0
16.01.2019, 13:53
    #39760265
256k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как же так?
dermamaTaPaK,

SELECT DATEDIFF(ss, allen, ward) seks,
DATEDIFF(mi, allen, ward) mins,
DATEDIFF(hh, allen, ward) hours
FROM (SELECT e1.hiredate allen, e2.hiredate ward
FROM emp e1
INNER JOIN
emp e2
ON e1.deptno = e2.deptno
WHERE e1.ename = 'ALLEN'
AND e2.ename = 'WARD') x
GO
----------------------------------------
seks mins hours
172800 2880 48

через INNER JOIN переделал, просто по номеру отдела сджойнил...

"Sehr geehrte Damen unD Herren"
...
Рейтинг: 0 / 0
16.01.2019, 13:56
    #39760268
dermama
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как же так?
256k,

Richtig, Ich bedanke Sie fuer ihre Bemerkung!
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / как же так? / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]