[英]How to convert one column values to two different column values based on other column in SQL Server?
[英]SQL Server how to define other column values based on one column on subquery inner join?
我有一個查詢,該查詢在同一張表上使用內部聯接並計算一些余額。 我為此使用分區。 並根據余額值減去一些日期。
我的查詢工作正常,但是有問題。 如果連接的平衡天數最終為零,則我需要所有具有相同BrojDoK
(內部連接所基於的列)的列都為零。
這是我到目前為止的結果:
我需要的是在這種情況下,對於BrojDok = 648
,由於末尾的BalanceTotal
為0,因此我還需要FinID = 5856
的BalanceDays
也為零。
我想得到這樣的東西:
我能以某種方式計算另一列可以做到這一點嗎?
我一直在尋找更新方法,但是我無法對此做任何事情。
到目前為止,這是我的查詢:
SELECT
S2.FinID, S2.Firma, S2.Konto, S2.Partner,
S2.BrojDok, S2.DatumVal, S2.pot, S2.dug,
S2.Balance, S2.BalanceTotal,
IIF(S2.BalanceTotal > 0,
IIF(S2.BalanceTotal < 1, DATEDIFF(DAY, S2.MinDate, S2.MaxDate),
DATEDIFF(DAY, S2.DatumVal, GETDATE())),
IIF(S2.BalanceTotal = 0, 0, 0)) AS BalanceDays
FROM
(SELECT
S1.FinID, S1.Firma, S1.NazFirme, S1.Konto, S1.NazivKonta,
S1.Partner, S1.NazivPartnera, S1.BrojDok, S1.DatumVal,
S1.pot, S1.dug, S1.Balance, S1.MaxDate, S1.MinDate,
SUM(S1.Balance) OVER (PARTITION BY S1.BrojDok ORDER BY S1.FinID) AS BalanceTotal
FROM
(SELECT
t1.FinID, t1.Firma, t1.NazFirme, t1.Konto, t1.NazivKonta,
t1.Partner, t1.NazivPartnera, t1.BrojDok, t1.DatumVal,
SUM(t1.Duguje) AS dug, SUM(t1.Potrazuje) AS pot,
SUM(IIF(t1.[Konto] LIKE '2%', t1.[Duguje] - t1.[Potrazuje], t1.[Potrazuje] -t1.[Duguje])) AS Balance,
MAX(t2.DatumVal) AS MaxDate,
MIN(t2.DatumVal) AS MinDate
FROM
tblFinansijskiPodaci t1
INNER JOIN
tblFinansijskiPodaci t2 ON t1.BrojDok = t2.BrojDok
WHERE
t1.Firma = 1 AND t1.Konto = 2040 AND t1.Partner = 1102
AND t2.Firma = 1 AND t2.Konto = 2040 AND t2.Partner = 1102
GROUP BY
t1.FinID, t1.Firma, t1.NazFirme, t1.Konto, t1.NazivKonta,
t1.Partner, t1.NazivPartnera, t1.BrojDok, t1.DatumVal) AS S1
) AS S2
ORDER BY
BrojDok
由於末尾的BalanceTotal為0,我需要FinID = 5856的BalanceDays也為零。
在這一行:
IIF(S2.BalanceTotal = 0, 0, 0)) AS BalanceDays
將S2.BalanceTotal替換為一個子查詢,該子查詢“最后”檢查BalanceTotal。
如果有人需要這樣的東西,我找到了解決方案,我只添加了計算MIN OVER PARTITION BY的列。
就我而言:
MIN(S3.BalanceDays) OVER (PARTITION BY S3.BrojDok) AS BalanceDays1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.