Заранее благодарю вас за помощь. Вот сценарий. У меня есть две таблицы: Лоты (информация о лотах магазинов для продуктов питания) и Trans (хранит транзакции инвентаря по лотам).T-SQL: AGGREGATE AND/OR CONDITIONAL SUBQUERY ON WHERE CLAUSE
Я пытаюсь написать запрос, в котором перечислены все операции, которые старше 90 дней на основе 3 условий на ИНЕКЕ как-то:
- CurrentQty (по лотам таблице)> 0
- If TransactionType = Пересылка и TransactionDate> 90 дней (от текущей даты) или ..
- IF TransactionType = Квитанция И TransactionDate> 90 дней (от текущей даты)
Примечание: для каждого Ио t, может быть много разных транзакций одного типа, как показано на прилагаемом рисунке. Там может быть много отправлений или квитанций. Мне нужно выбрать MAX (TransactionDate) для определенного типа транзакции и проверить, не превышает ли это более 90 дней, а затем показать запись.
В каждой таблице транзакций всегда будет по крайней мере один из этих двух типов транзакций, будь то Отгрузка или Квитанция. Если для конкретной партии нет типа транзакции отправки, я хочу использовать условие Max (TransactionDate)> 90 для типа транзакции «получение».
Мне нужно оценить все эти условия для каждой партии, а также конкретные транзакции.
Ниже приведен запрос, который я начал писать, но затем застрял над тем, как структурировать остальные.
SELECT
LOTS.LOTNUMBER, TRANS.ITEMNUMBER, TRANS.DESCRIPTION,
TRANS.TRANSACTIONTYPE, TRANS.TRANSACTIONDATE, TRANS.WAREHOUSE,
TRANS.QUANTITY
FROM
LOTS
INNER JOIN
TRANS ON LOTS.LOTNUMBER = TRANS.LOTNUMBER
WHERE
LOTS.CURRENTQUANTITY > 0
пожалуйста переустановите CAPS LOCK. ЯВЛЯЕТСЯ, ЧТОБЫ БЫЛО БЫЛО, КОГДА ВЫ ПОДТВЕРДИЛИ НАЗВАНИЕ ВАШЕГО ВОПРОСА. Либо это, либо вы очень грубы и ОБРАЩАЙТЕСЬ НА США, и в этом случае вам также нужно это прекратить. Мы все можем читать очень хорошо, ОБРАТИТЬ ваш вопрос не даст вам ответа быстрее, а ОБРАТИТЬСЯ В США - это действительно раздражающее и невежливое поведение. –
Вы ограничены одним номером лота за раз в номер элемента? В противном случае это немного странно. – DaveX
Привет, Кен Уайт, извините, я только что присоединился к этому форуму сегодня и все еще пытаюсь понять, в том числе и правильный протокол. Мои извинения. – Marcos