The problem is the one who made the tables is not me. This problem base on database adaptation. So guys I need your help.
I have Tables that needs to be SUM the Quantity of the Items.
I use this code to get the Quantaties from items to orderset_details table.
SELECT
I.ItemId, I.Code, I.Item, I.Minimum, I.Maximum,
IFNULL
(
(
SELECT SUM(ROUND(h.Quantity))
FROM orderset_details AS H
WHERE H.ItemId = I.ItemId
)
, 0
) as 'Balance'
FROM items AS I
GROUP BY I.ItemId
OUTPUT
But there are tables that needs to be a NEGATIVE Quantity. My code only gets all Quantity for 1 item at time.
SELECT
sts.TransferDate as 'Transaction Date'
, sts.TransNumber as 'Document Number'
, orderset_details.Quantity as 'Quantity'
, '' as 'Po Number'
, '' as 'Sales Invoice'
, orderset_details.Cost as 'Cost'
, orderset_details.SerialNumber as 'Serial Number'
, orderset_details.LotNumber as 'Lot Number'
, location.Location as 'Location'
FROM sts
LEFT JOIN orderset_details ON sts.OrdersetId = orderset_details.OrdersetId
LEFT JOIN location ON location.LocationId = sts.LocationIdTo
WHERE orderset_details.ItemId = '4786'
UNION
SELECT
drs.OrderDate
, drs.TransNumber
, orderset_details.Quantity
, drs.PONumber
, ''
, orderset_details.Cost
, orderset_details.SerialNumber
, orderset_details.LotNumber
, suppliers.Supplier
FROM drs
LEFT JOIN orderset_details ON drs.OrdersetId = orderset_details.OrdersetId
LEFT JOIN suppliers ON suppliers.SupplierId = drs.SupplierId
WHERE orderset_details.ItemId = '4786'
UNION
SELECT
stockadjustment.TransactionDate
, stockadjustment.TransactionId
, IF(reason.AddsToStock = '1', orderset_details.Quantity, 0 - orderset_details.Quantity)
, ''
, ''
, orderset_details.Cost
, orderset_details.SerialNumber
, orderset_details.LotNumber
, location.Location
FROM stockadjustment
LEFT JOIN reason ON reason.ReasonId = stockadjustment.ReasonId
LEFT JOIN orderset_details ON stockadjustment.OrdersetId = orderset_details.OrdersetId
LEFT JOIN location ON location.LocationId = stockadjustment.LocationId
WHERE orderset_details.ItemId = '4786'
UNION
SELECT
issueslip.OrderDate
, issueslip.TransNumber
, IF(issueslip.OrdersetId = orderset_details.OrdersetId, 0 - orderset_details.Quantity, -1 * orderset_details.Quantity)
, ''
, ''
, orderset_details.Cost
, orderset_details.SerialNumber
, orderset_details.LotNumber
, customers.Customer
FROM issueslip
LEFT JOIN orderset_details ON issueslip.OrdersetId = orderset_details.OrdersetId
LEFT JOIN customers ON customers.CustomerId = issueslip.CustomerId
WHERE orderset_details.ItemId = '4786'
UNION
SELECT
invoice.OrderDate
, invoice.TransNumber
, IF(invoice.OrdersetId = orderset_details.OrdersetId, 0 - orderset_details.Quantity, -1 * orderset_details.Quantity)
, ''
, ''
, orderset_details.Cost
, orderset_details.SerialNumber
, orderset_details.LotNumber
, customers.Customer
FROM invoice
LEFT JOIN orderset_details ON invoice.OrdersetId = orderset_details.OrdersetId
LEFT JOIN customers ON customers.CustomerId = invoice.CustomerId
WHERE orderset_details.ItemId = '4786'
I only need from this Code is for the Negative Quantity Condition LIKE IF(reason.AddsToStock = '1', orderset_details.Quantity, 0 - orderset_details.Quantity) and 2 other more query.
HOW CAN I COMBINE THIS QUERY TO MY FIRST QUERY ABOVE?
