Я довольно новичок, когда речь заходит о T-SQL, и я не могу понять этот запрос.Запрос T-SQL - возврат одного результата или возврат 0 (SQL 2008R2)
Я пытаюсь сравнить значение предмета с его ведомым значением, чтобы проверить любые аномалии, потому что иногда они выходят из строя.
Мне нужен запрос, для всех текущих запасов, вычесть поле «Сумма» элемента «Лекарство» в поле «Значение товара» элемента. Существует несколько Записей предметов, они должны вычесть сумму из записи в книге, которая открыта. Если вход в Open Ledger отсутствует, вместо этого вычесть нуль.
Я разделывал вместе запрос в конструкторе запросов извинения за разгильдяйство:
SELECT dbo.[Company$ItemTable].[Item No_],
dbo.[Company$ItemTable].[Current Stock],
dbo.[Company$ItemTable].[Item Value],
dbo.[Company$Item Ledger Entry].[Open],
dbo.[Company$ItemTable].[Item Value] - SUM(CASE
WHEN dbo.[Company$Item Ledger Entry].[Open] = 1 THEN dbo.[Company$Item Ledger Entry].Amount
ELSE 0
END) AS Diff,
SUM(CASE
WHEN dbo.[Company$Item Ledger Entry].[Open] = 1 THEN dbo.[Company$Item Ledger Entry].Amount
ELSE 0
END) AS AmountILE,
dbo.[Company$Item Ledger Entry].[Entry No_]
FROM dbo.[Company$ItemTable]
LEFT OUTER JOIN dbo.[Company$Item Ledger Entry]
ON dbo.[Company$ItemTable].[Item No_] = dbo.[Company$Item Ledger Entry].[Lot No_]
GROUP BY dbo.[Company$ItemTable].[Item No_],
dbo.[Company$ItemTable].[Current Stock],
dbo.[Company$ItemTable].[Item Value],
dbo.[Company$Item Ledger Entry].[Open],
dbo.[Company$Item Ledger Entry].[Entry No_]
HAVING (dbo.[Company$ItemTable].[Current Stock] = 1)
AND (dbo.[Company$ItemTable].[Item Value] - SUM(CASE
WHEN dbo.[Company$Item Ledger Entry].[Open] = 1 THEN dbo.[Company$Item Ledger Entry].Amount
ELSE 0
END) > 1)
AND (dbo.[Company$Item Ledger Entry].[Open] = 1)
Имеет ли это смысл? Может ли кто-нибудь помочь? Благодаря!
Вам необходимо задать конкретный вопрос. Прямо сейчас, неясно, каков ваш вопрос и какой правильный ответ на него будет выглядеть. – RBarryYoung
Извините, Я хочу вернуть значение ([ItemTable]. [Item Value] - [Item Ledger Entry]. [Amount]) как «Diff». Если в фильтрах нет записи элемента входа (IE - No 'Open' Entries), верните 0. Имеет ли это смысл? – user2401849
Разве ваш запрос выше не делает этого? – RBarryYoung