I am inserting First four column multiple times, with new paidVal
. Now I want to get sid,snameVal, balance
I have used a inner join on studenttbl and feetlb.
here I have tried. But I am getting 3 row when I should get 2 only. In the table there is a field cNameVal, and as much different value i m entering I am getting that much row.
x
sql
SELECT studenttbl.sid,
studenttbl.snameVal,
studenttbl.sPhoneVal,
coursefeeval - SUM(paidval) AS balance,
CONVERT(varchar, studenttbl.sdateVal, 106) AS sdateVal
FROM feeTbl
INNER JOIN studenttbl ON feeTbl.sid = studenttbl.sid
GROUP BY studenttbl.sid,
studenttbl.snameVal,
coursefeeval,
sPhoneVal,
sdateVal;
feetbl
sid snameVal cNameVal courseFeeVal paidVal
1001 Vivek 7 4000 1000
1001 Vivek 7 4000 1000
1002 Rahul 8 5000 1000
1002 Rahul 5 6000 5000
Advertisement
Answer
With no expected results, this is based on this comment:
I want to get
sid,snameVal, balance
here balance meanscourseFeeVal - SUM(paidVal)'
Seems like you want a windowed SUM
:
SELECT st.sid,
st.snameVal,
st.sPhoneVal,
coursefeeval - SUM(paidval) OVER (PARTITION BY st.sid) AS balance, --2 of these columns need qualifying
st.sdateVal AS sdateVal --leave dates as a date and time data time, don't convert to a string
FROM feeTbl fT
INNER JOIN studenttbl st ON fT.sid = st.sid;