Проблема с оператором соединения SQL - PullRequest
2 голосов
/ 01 апреля 2010

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

select t.*, top 1 c.* from Cash c
inner join TransactionInfo t
on c.TransactionID = t.id
order by c.createdOn desc

Ответы [ 4 ]

2 голосов
/ 01 апреля 2010
select top 1 *
from Cash c
inner join TransactionInfo t on c.TransactionID = t.id
order by createdOn desc
1 голос
/ 01 апреля 2010

Что это top 1 делает там?Если вам нужна только одна строка, то ТОП (1) должен идти первым:

SELECT TOP(1) t.*, c.*
FROM Cash c
INNER JOIN TransactionInfo t
ON c.TransactionID = t.id
ORDER BY c.createdOn DESC
0 голосов
/ 01 апреля 2010
SELECT c.*, t.* FROM cash c, transactioninfo t
WHERE c.infoid = t.id AND c.createdOn = (SELECT max(createdOn) FROM cash WHERE infoId = t.id) ORDER BY transactiontabledate desc

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

0 голосов
/ 01 апреля 2010

выберите т. , c. от (выберите top 1 * из заказа на оплату наличными, созданного на ) с внутреннее соединение TransactionInfo t на c.TransactionID = t.id упорядочить созданный по номеру

НЕ используйте select *, особенно при объединении, он тратит ресурсы сервера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...