私はこのクエリを持っています:
SELECT
qa_invoices.invoice_clientname,
(
SELECT IFNULL(MIN(qa_returns.discount_code),1)
FROM qa_returns
WHERE qa_returns.invoice_code = qa_invoices.invoice_code
AND qa_returns.discount_code <> 1
) AS discount_code,
qa_users.user_name,
(0.00) AS previous_balance,
(0.00) AS difference_to_be_paid,
(0.00) AS client_credit,
SUM(SubQueryAlias.item_discount) AS invoice_discount,
SUM(SubQueryAlias.item_subtotal) AS invoice_subtotal,
SUM(SubQueryAlias.item_total) AS invoice_total,
DATE_FORMAT(qa_invoices.invoice_date,'%M %e, %Y @ %h:%i %p') AS returnlog_date
FROM (
SELECT qa_returns_items.item_code,
qa_returns_items.item_subtotal,
qa_returns_items.item_discount,
qa_returns_items.item_total
FROM qa_returns_items
WHERE returnlog_code = (
SELECT MIN(qa_returns.returnlog_code)
FROM qa_returns
WHERE qa_returns.invoice_code = 1
)
UNION
SELECT qa_returns_residues.item_code,
qa_returns_residues.item_subtotal,
qa_returns_residues.item_discount,
qa_returns_residues.item_total
FROM qa_returns_residues
WHERE returnlog_code = (
SELECT MIN(qa_returns.returnlog_code)
FROM qa_returns
WHERE qa_returns.invoice_code = 1
)
ORDER BY item_code ASC
) AS SubQueryAlias, qa_invoices
LEFT JOIN qa_users USING(user_code)
WHERE SubQueryAlias.item_code NOT IN (
SELECT a.item_code
FROM qa_returns_items a
JOIN qa_returns_residues b
ON b.item_code = a.item_code
WHERE a.returnlog_code = (
SELECT MIN(qa_returns.returnlog_code)
FROM qa_returns
WHERE qa_returns.invoice_code = 1
)
AND b.returnlog_code = (
SELECT MIN(qa_returns.returnlog_code)
FROM qa_returns
WHERE qa_returns.invoice_code = 1
)
)
AND qa_invoices.invoice_code = 1;
クエリは問題なく動作しますが、値invoice_code
が 5 回設定されていることがわかります。グローバル変数を宣言して、すべてに同じ値を割り当てる方法はあるのだろうか