2012-02-18 5 views
0

у меня есть две таблицы ..Две таблицы в MySQL, как извлекать данные из этих таблиц

Client Bills - Содержит законопроект Infor для клиентов

из billRecievedFromClient - содержит сумму, которую мы receievd от клиент для счета

mysql> выберите * from clientBills;

+ ------------ + ------------ + ------------ + ----- + ------- +

| дата | clientCode | billNumber | billAmount |

+ ------------ + ------------ + ------------ + ------ ------ +

| 2012-02-17 | C0001 | B0001 | 1200,00 |

| 2012-02-17 | C0001 | B0002 | 1000,00 |

| 2012-02-17 | C0002 | B0003 | 1233,00 |

| 2012-02-18 | C0003 | B0004 | 12000,00 |

| 2012-02-18 | C0001 | B0005 | 400,00 |

+ ------------ + ------------ + ------------ + ------ ------ +

mysql> выберите * from billRecievedFromClient;

+ ------------ + -------------- + --------------- + -------- + --------- +

| Дата | receivedCode | forBillNumber | количество | замечания |

+ ------------ + -------------- + --------------- + - ------- + --------- +

| 2012-02-18 | R0001 | B0001 | 200,00 | ДЕНЬГИ |

| 2012-02-18 | R0002 | B0001 | 300,00 | ДЕНЬГИ |

| 2012-02-18 | R0003 | B0002 | 300,00 | ДЕНЬГИ |

| 2012-02-18 | R0004 | B0003 | 233,00 | ДЕНЬГИ |

| 2012-02-18 | R0005 | B0001 | 700,00 | ДЕНЬГИ |

+ ------------ + -------------- + --------------- + - ------- + --------- +

Теперь я хочу Информация Как этот --- ie для клиента C0001, есть 3 счета. И он произвел оплату за один счет полностью, за один счет частично и один счет. Сумма обязательной суммы.

+ ------------ + ---------- - + ------------------------------------ +

| billNumber | billAmount | SUM (billRecievedFromClient.количество) |

+ ------------ + ------------ + ------------------- ----------------- +

| B0001 | 1200,00 | 1200,00 |

| B0002 | 1000,00 | 300,00 |

| B0005 | 400,00 | 00.00 |

+ ------------ + ------------ + ------------------- ----------------- +

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

что может быть запросом для этого?

предлагаю ..

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

+0

кто-то формат вопрос пожалуйста ... –

ответ

0

Использование LEFT JOIN

SELECT *, SUM(t2.amount) FROM clientBills t1 LEFT JOIN billRecievedFromClient t2 ON t1.billNumber = t2.forBillNumber

Во всяком случае Там не будет записи для не начала счета. Но если и хочет NULL записи для не начали счета и можно добавлять в конце запроса: GROUP BY t1.billNumber

+0

Это выборка только одну строки .. и суммы всех строк ... ... + ------------ + ------------ + ---------------- + | billNumber | billAmount | SUM (t2.amount) | + ------------ + ------------ + ---------------- + | B0001 | 1200,00 | 1733,00 | + ------------ + ------------ + ---------------- + –

+0

А, я вижу , Попробуйте добавить в конце запроса 'GROUP BY t1.clientCode, t1.billNumber' Если он не будет работать, вставьте где-нибудь SQL со схемой и некоторые данные, чтобы играть с;) –

+0

Спасибо Dude !! Готово! –

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