대차 대조표가 SAP Business One 인 쿼리를 작성하려고합니다. 내가 거기에 합 계산을하고 난 그것이 그렇게되고 싶어요 :IF ELSE In 열 선택
if SUM(T1.Credit-T1.Debit) > 0
show the value in column "Positive Total" and in negative total put 0 or something.
if SUM(T1.Credit-T1.Debit) < 0
show the value in column "Negative Total" and in "Positive total" put 0 or something.
코드는 다음과 같습니다 사전에
SELECT T1.Account, Isnull((SELECT SUM(T3.Debit - T3.Credit)
FROM OJDT T2
INNER JOIN JDT1 T3 ON T2.TransId = T3.TransId
INNER JOIN OACT o ON o.AcctCode = T3.Account
WHERE DateDiff(dd,T2.RefDate,'20140101') > 0
AND T3.Account LIKE T1.Account
GROUP BY T3.Account),0) AS 'Opening Balance',
SUM(T1.Debit) AS 'Debit',
SUM(T1.Credit) AS 'Credit',
SUM(T1.Credit-T1.Debit) AS 'Positive Total',
SUM(T1.Credit-T1.Debit) AS 'Negative Total'
,AcctName, GroupMask,Levels,
(CASE GroupMask
WHEN 1 THEN 'ASSET'
WHEN 2 THEN 'LIABILITIES'
WHEN 3 THEN 'Capital and Reserves'
WHEN 4 THEN 'Turnover'
WHEN 5 THEN 'Cost of Sales'
WHEN 6 THEN 'Operating Costs'
WHEN 7 THEN 'Non-Operating Income and Expenditure'
ELSE 'NOT INCLUDED'
END) [GROUP]
FROM OJDT T0
INNER JOIN JDT1 T1 ON T0.TransId = T1.TransId
INNER JOIN OACT T4 ON T4.AcctCode = T1.Account
WHERE T0.RefDate BETWEEN '20150101' AND '20160131'
GROUP BY T1.Account, AcctName, GroupMask, Levels
Having SUM(T1.Debit - T1.Credit) != 0
ORDER BY T1.Account
감사합니다, 제작 : Almog.
MySQL의 또는 MS SQL 서버 :
이 시도? (관련되지 않은 제품에 태그를 지정하지 마십시오.) – jarlh
죄송합니다. MS SQL. 감사합니다. – Almog
그 코드에서 구문 오류가 발생하지 않습니까? 나는 판단력이 없지만 코드는 총 난장판이다. 나는 그룹의 요점을 부분적으로 볼 수 없다. 그리고이 ISNULL은 정말로 나를 혼란스럽게 만든다. 최소한 코드를 검사하고 필요한 것을 물어보십시오. –