2013-12-19 2 views
0

У меня есть две таблицы:Написание запроса на выборку

table1 =tbl_main: 

    item_id fastec_qty 
    001  102 
    002  200 
    003  300 
    004  400 

    table2= tbl_dOrder 
    order_id item_id  amount 
    1001   001  30 
    1001   002  40 
    1002   001  50 
    1002   003  70 

Как я могу написать запрос так, чтобы результат таблиц являются следующие:

item_id  amount difference 
    001   102  22 
    002   200  160 
    003   300  230 
    004   400  400 

Разница между суммой в таблице 1 и общие суммы, выплаченные из таблицы 2.

+0

Почему вы отметили свой вопрос как 'C#'. Вам это нужно в linq? –

+0

Я хочу показать результаты в контроле datagridview. –

ответ

2
SELECT q.item_id, a.fastec_qty AS amount, a.fastec_qty - q.amount AS difference 
FROM (
    SELECT item_id, SUM(amount) AS amount 
    FROM tbl_dOrder 
    GROUP BY item_id 
) q 
    JOIN tbl_main a ON a.item_id = q.item_id 

Вот этот запрос собирается первым SUM суммы от tbl2 сгруппированы по item_id, тогда он будет JOIN результатов этого запроса с первой таблицей, чтобы он мог выполнять вычисления для столбца разницы.

+1

Большое спасибо –

Смежные вопросы