У меня есть эта проблема, касающаяся SQL, который я буду использовать в веб-сервисе, если смогу сделать это правильно. То, что я хотел сделать, это создать сводный отчет о транзакции. У транзакции есть заголовок и строки. В транзакции мы собираемся ввести много досок.
После ввода я хотел бы подготовить отчет, в котором будут добавлены все доски, относящиеся к категории, а затем умножены все доски на цену этого поставщика, чтобы у меня была общая сумма. Вот картинка:
ниже мой sql, который выдает неправильный вывод:
select
t1.transaction_num,
wo1.wood_classification_desc,
wo2.wood_specie_desc,
sum(t2.board_foot) as total_board_foot,
su1.price,
sum(t2.board_foot*su1.price) as total_amount
from
"transaction_hdr" t1
left join "transaction_lne" t2 on (t1.transaction_id = t2.transaction_id)
left join "supplier" su2 on (t1.supplier_id = su2.supplier_id)
left join "supplier_price" su1 on (t2.price = su1.price)
left join "wood_classification" wo1 on (t2.wood_classification_id = wo1.wood_classification_id)
left join "wood_specie" wo2 on (wo1.wood_specie_id = wo2.wood_specie_id)
group by
t1.transaction_num,wo1.wood_classification_desc,su1.price,su2.supplier_name,wo2.wood_specie_desc
order by transaction_num,wo2.wood_specie_desc
Каждый раз, когда я запускаю этот sql, он производит что-то вроде этого:
транзакция, которую я проверяю, имеет только пять планок. 4 доски под Mahogany 6" wider - 7ft. up
и 1 Mahogany 5" wider - 7ft. up
.