2012-08-26 37 views
2

我使用此查詢來從SQL Server 2008的數據:獲取從數據庫和顯示數據的DataGridView

select 
    g.godown_name, s.supplier_name, t.type_name, 
    r.bags_instock, b.lb_per_bag, t.rate 
from 
    tbl_godown g, tbl_yarn_supplier s, tbl_yarn_type t, 
    tbl_yarn_receive r, tbl_godown_transaction gt, tbl_yarn_book b 
where 
    r.book_id = b.book_id and 
    s.supplier_id = b.supplier_id and 
    t.type_id = b.type_id and 
    gt.godown_id = g.godown_id and 
    gt.receive_id = r.receive_id 

結果是:

enter image description here

這裏是一些交易具有相同GodownSuppliarTpe & lbs_per_bag

1. 1 & 7 
2. 2,3,4,5 
3. 8,9,10,11 
4. 12 
5. 6 

如果任何行具有相同Godown, Suppliar, Tpe & lbs_per_bag他們不應該重複

結果應該是這樣的。

感謝

等待響應

enter image description here

+1

看起來你需要一個簡單的GROUP BY子句 – Kane

+0

可能是??? 通過google重新修改它。 –

回答

2

這是我會怎麼做:

SELECT 
    g.godown_name, 
    s.supplier_name, 
    t.type_name, 
    b.lb_per_bag, 
    SUM(r.bags_instock) As total_bags_instock, 
    SUM(t.rate * r.bags_instock) 
     /SUM(r.bags_instock) As average_rate 

FROM tbl_godown_transaction As gt 
JOIN tbl_godown   As g ON gt.godown_id = g.godown_id 
JOIN tbl_yarn_receive As r ON gt.receive_id = r.receive_id 
JOIN tbl_yarn_book  As b ON r.book_id  = b.book_id 
JOIN tbl_yarn_supplier As s ON s.supplier_id = b.supplier_id 
JOIN tbl_yarn_type  As t ON t.type_id  = b.type_id 

GROUP BY 
    g.godown_name, 
    s.supplier_name, 
    t.type_name, 
    r.lb_per_bag 
1

傾向於使用內部連接

select 
     g.godown_name, s.supplier_name, t.type_name, 
     r.bags_instock, b.lb_per_bag, t.rate 
    from 
     tbl_godown g 
     inner join tbl_godown_transaction gt 
      on gt. gt.godown_id = g.godown_id 
     inner join tbl_yarn_receive r 
      on gt.receive_id = r.receive_id 
     inner join tbl_yarn_book b 
      on r.book_id = b.book_id 
     inner join tbl_yarn_supplier s 
      on s.supplier_id = b.supplier_id 
     inner join tbl_yarn_type t 
      on t.type_id = b.type_id  
    group by g.godown_name, s.supplier_name, t.type_name, 
     r.bags_instock, b.lb_per_bag, t.rate 
+0

這不是SQL Server中的有效查詢。所有的'select'列都必須由'group by'或者包含在聚合函數中。 – RBarryYoung

+0

哎呀,你有權利,我會糾正它;-) –