2017-11-22 11 views
0

私の実際の質問はここにあり、私は示唆したようにコードを使用しました。 2つの選択ステートメントの上に参加するにはどのように1つのステートメントで2つの選択クエリを結合し、それをc#のDatagridviewに表示するには?

I want to sum specific cell values by searching for similar values in textbox in c# .net

SELECT s.partnum,partdesc,partmodel,stockin,dateofstockin, (SELECT 
    SUM(stockin) 
    FROM Tbl_SpareParts 
    GROUP BY partnum 
    HAVING partnum = s.partnum) AS FinalTotalStockIN FROM Tbl_SpareParts s 

    SELECT s.partnum,partdesc,partmodel,outstock,outstockdate,outstockcaseid_billnum,remarks, (SELECT SUM(outstock) 
    FROM Tbl_OutCaseID 
    GROUP BY partnum 
    HAVING partnum = s.partnum) AS FinalTotalStockOut FROM Tbl_OutCaseID s 

私はINNER JOINを使ってみましたが、最初の上記のsum文を使用して、上記の在庫と在庫の合計を求めています。

SELECT Tbl_SpareParts.partnum, Tbl_SpareParts.partdesc, 
Tbl_SpareParts.partmodel, Tbl_SpareParts.stockin, 
Tbl_SpareParts.dateofstockin, Tbl_OutCaseID.partnum AS Stockoutpartnum, 
Tbl_OutCaseID.partdesc AS Stockoutpartdesc, 
Tbl_OutCaseID.partmodel AS stockoutpartmodel, Tbl_OutCaseID.outstock, 
Tbl_OutCaseID.outstockdate, Tbl_OutCaseID.outstockcaseid_billnum, 
Tbl_OutCaseID.remarks 
FROM Tbl_SpareParts INNER JOIN 
Tbl_OutCaseID ON Tbl_SpareParts.SN = Tbl_OutCaseID.SN 
+0

以前に参加しようとしましたか? - > https://stackoverflow.com/questions/12901614/sql-select-statements-with-multiple-tables – Kathara

答えて

1

私はあなたが使用しているDBMSのか分からないが、主流のDBMSの多くは両方のウィンドウ関数とユーザーが定義し、カスケードサブクエリできwith句をサポートしています。たとえあなたのDBMSがこれらをサポートしていなくても、それを動作させるためにクエリを少し書き直すことができます。私が正しくあなたの質問を理解していれば

、私はこのようなものは、あなたが求めているものを達成かもしれないと思う:

with spare_parts as (
SELECT 
    s.partnum,partdesc,partmodel,stockin,dateofstockin,sn, 
    sum (stockin) over (partition by partnum) as stockin_total 
FROM Tbl_SpareParts s 
), 
cases as (
SELECT 
    s.partnum,partdesc,partmodel,outstock,outstockdate,outstockcaseid_billnum,remarks, 
    sn, SUM(outstock) over (partition by partnum) as outstock_total 
FROM Tbl_OutCaseID 
) 
select 
    s.partnum, s.partdesc, s.partmodel, s.stockin, 
    s.dateofstockin, s.stockin_total, 
    c.partnum AS Stockoutpartnum, 
    c.partdesc AS Stockoutpartdesc, 
    c.partmodel AS stockoutpartmodel, c.outstock, 
    c.outstockdate, c.outstockcaseid_billnum, 
    c.remarks, c.outstock_total 
from 
    spare_parts s 
    join cases c on s.sn = c.sn 

別の可能性は、あなたが上の各部分のための在庫インおよび在庫切れの合計が欲しかったです一行は、私は確信していませんでした。その場合、上記は間違っていますが、各サブクエリ内のウィンドウ関数を通常の集計(GROUP BY)に変更することで実現できます。

+0

これは動作しますが、完全なデータが表示されません。 「Tbl_stockin」に6行、「Tbl_Stockout」に4行あります。 sn = snなので、4行しか表示されません。グループと一緒にしましたが、うまくいきませんでした。 –

+0

また、行が繰り返されます –

関連する問題