powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / как же так?
12 сообщений из 12, страница 1 из 1
как же так?
    #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
как же так?
    #39760180
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dermama,

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

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

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

Код: sql
1.
2.
3.
4.
5.
...
SELECT hiredate allen, hiredate ward
      FROM emp
	  WHERE ename = 'ALLEN' AND ename = 'WARD'
...
...
Рейтинг: 0 / 0
как же так?
    #39760185
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dermamaздесь я получаю ошибку на столбец ENAME Invalid column name ename, почему?У вас COLLATE базы регистрозависимый? Поле-то, всё-таки, ENAME или ename?
...
Рейтинг: 0 / 0
как же так?
    #39760187
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iapdermamaздесь я получаю ошибку на столбец ENAME Invalid column name ename, почему?У вас COLLATE базы регистрозависимый? Поле-то, всё-таки, ENAME или ename?Да. Это я не по делу написал. Просто в подзапросе у вас такого поля нет, как уже сказали.
...
Рейтинг: 0 / 0
как же так?
    #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
как же так?
    #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
как же так?
    #39760197
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
точнее не совсем так
ename = 'ALLEN' AND ename = 'WARD' => ename = 'ALLEN' AND ename = 'ALLEN' или второй вариант
...
Рейтинг: 0 / 0
как же так?
    #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
как же так?
    #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
как же так?
    #39760268
dermama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
256k,

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


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