Zolf
asked on
MSSQL Query help
Hello there,
I have this query which is returning some redundant data. Can somebody please help me to correct this query. I have also attached the table relationship.
table-relation.png
I have this query which is returning some redundant data. Can somebody please help me to correct this query. I have also attached the table relationship.
SELECT
dbo.supplierOrder.sectionID,
dbo.supplierOrder.supplierID,
dbo.supplierOrder.supplierOrderNo,
dbo.supplierOrder.supplierOrderCreated,
dbo.supplierOrder.supplierOrderConfirmStatus,
dbo.supplierOrderDetails.productID,
dbo.supplierOrderDetails.orderQty,
dbo.supplierOrderReceive.invoiceno,
dbo.supplierOrderReceive.supplierInvoiceno,
dbo.supplierOrderReceive.ID,
dbo.supplierOrderReceiveDetail.qtyArrived
FROM
dbo.supplierOrder
INNER JOIN
dbo.supplierOrderDetails
ON
(
dbo.supplierOrderDetails.supplierOrderID = dbo.supplierOrder.ID)
INNER JOIN
dbo.supplierOrderReceive
ON
(
dbo.supplierOrderReceive.supplierOrderID = dbo.supplierOrder.ID)
INNER JOIN
dbo.supplierOrderReceiveDetail
ON
(
dbo.supplierOrderReceiveDetail.supplierOrderReceiveID = dbo.supplierOrderReceive.ID)
WHERE
dbo.supplierOrder.ID = 1 ;
table-relationship.pngtable-relation.png
I would use the keyword DISTINCT before
dbo.supplierOrderReceiveDetail.qtyArrived
ASKER
thanks for your comment.can you please give me the full query.
SELECT
dbo.supplierOrder.sectionID,
dbo.supplierOrder.supplierID,
dbo.supplierOrder.supplierOrderNo,
dbo.supplierOrder.supplierOrderCreated,
dbo.supplierOrder.supplierOrderConfirmStatus,
dbo.supplierOrderDetails.productID,
dbo.supplierOrderDetails.orderQty,
dbo.supplierOrderReceive.invoiceno,
dbo.supplierOrderReceive.supplierInvoiceno,
dbo.supplierOrderReceive.ID,
DISTINCT dbo.supplierOrderReceiveDetail.qtyArrived
FROM
dbo.supplierOrder
INNER JOIN
dbo.supplierOrderDetails
ON
(
dbo.supplierOrderDetails.supplierOrderID = dbo.supplierOrder.ID)
INNER JOIN
dbo.supplierOrderReceive
ON
(
dbo.supplierOrderReceive.supplierOrderID = dbo.supplierOrder.ID)
INNER JOIN
dbo.supplierOrderReceiveDetail
ON
(
dbo.supplierOrderReceiveDetail.supplierOrderReceiveID = dbo.supplierOrderReceive.ID)
WHERE
dbo.supplierOrder.ID = 1 ;
ASKER
no this give me error
Incorrect syntax near the keyword 'DISTINCT'.
I tried to add DISTINCT at the start and it ran the query but does not give me the desired result
Incorrect syntax near the keyword 'DISTINCT'.
I tried to add DISTINCT at the start and it ran the query but does not give me the desired result
I just verified the data you have provided , I am not able to get complete record duplication here
ID and qtyArrived
is differenct for all cloumns
ID and qtyArrived
is differenct for all cloumns
ASKER
what do you mean. i have printed my result,it is duplicating the data. for e.g. for all the productID it is repeating the same qtyArrived. my final result should return only 4 records.
sectionID supplierID supplierOrderNo supplierOrderCreated supplierOrderConfirmStatus productID orderQty invoiceno supplierInvoiceno ID qtyArrived
1 1 (null) 2013-12-10 12:35:03 true 5 8 (null) 223444 1 2
1 1 (null) 2013-12-10 12:35:03 true 1 3 (null) 223444 1 2
1 1 (null) 2013-12-10 12:35:03 true 6 4 (null) 223444 1 2
you mean to say you need one record for this ? what will be that
1 1 (null) 2013-12-10 12:35:03 true 5 8 (null) 223444 1 2
1 1 (null) 2013-12-10 12:35:03 true 1 3 (null) 223444 1 2
1 1 (null) 2013-12-10 12:35:03 true 6 4 (null) 223444 1 2
you mean to say you need one record for this ? what will be that
ASKER
i am expecting this
sectionID supplierID supplierOrderNo supplierOrderCreated supplierOrderConfirmStatus productID orderQty invoiceno supplierInvoiceno ID qtyArrived
1 1 (null) 2013-12-10 12:35:03 true 5 8 (null) 223444 1 8
1 1 (null) 2013-12-10 12:35:03 true 1 3 (null) 223444 1 2
1 1 (null) 2013-12-10 12:35:03 true 1 3 (null) 565333 2 1
1 1 (null) 2013-12-10 12:35:03 true 6 4 (null) 565333 2 4
sectionID supplierID supplierOrderNo supplierOrderCreated supplierOrderConfirmStatus
1 1 (null) 2013-12-10 12:35:03 true 5 8 (null) 223444 1 8
1 1 (null) 2013-12-10 12:35:03 true 1 3 (null) 223444 1 2
1 1 (null) 2013-12-10 12:35:03 true 1 3 (null) 565333 2 1
1 1 (null) 2013-12-10 12:35:03 true 6 4 (null) 565333 2 4
Can you explain how you would derive those rows from the data you posted earlier? I am not seeing any rhyme or reason. Take that first row:
1 1 (null) 2013-12-10 12:35:03 true 5 8 (null) 223444 1 8
I assume it comes from the following rows:
1 1 (null) 2013-12-10 12:35:03 true 5 8 (null) 223444 1 2
1 1 (null) 2013-12-10 12:35:03 true 5 8 (null) 223444 1 8
Is it the"last" one that you are looking for? If so, can you define the "last" one?
1 1 (null) 2013-12-10 12:35:03 true 5 8 (null) 223444 1 8
I assume it comes from the following rows:
1 1 (null) 2013-12-10 12:35:03 true 5 8 (null) 223444 1 2
1 1 (null) 2013-12-10 12:35:03 true 5 8 (null) 223444 1 8
Is it the"last" one that you are looking for? If so, can you define the "last" one?
For the second row:
1 1 (null) 2013-12-10 12:35:03 true 1 3 (null) 223444 1 2
I am assuming it is coming from:
1 1 (null) 2013-12-10 12:35:03 true 1 3 (null) 223444 1 2
1 1 (null) 2013-12-10 12:35:03 true 1 3 (null) 223444 1 8
But here you appear to have picked the "first" one.
Perhaps it does not matter which one is returned.
1 1 (null) 2013-12-10 12:35:03 true 1 3 (null) 223444 1 2
I am assuming it is coming from:
1 1 (null) 2013-12-10 12:35:03 true 1 3 (null) 223444 1 2
1 1 (null) 2013-12-10 12:35:03 true 1 3 (null) 223444 1 8
But here you appear to have picked the "first" one.
Perhaps it does not matter which one is returned.
ASKER
thanks for your comments.
see the invoice numbers in the result. the idea is to get the products which the supplier has sent to the client. the products could have come in one batch or in small batches. the productid 1 has come in 2 batches(the orderQty by the client was 3 but it qtyArrived in 2 batches of 1 and 2). see the attached file.
table-relationship.png
see the invoice numbers in the result. the idea is to get the products which the supplier has sent to the client. the products could have come in one batch or in small batches. the productid 1 has come in 2 batches(the orderQty by the client was 3 but it qtyArrived in 2 batches of 1 and 2). see the attached file.
table-relationship.png
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
thanks
ASKER
which is not exactly what I was want. the last column qtyArrived should show only its related qty but here as you can see it is repeating for each of the productID
sectionID supplierID supplierOrderNo supplierOrderCreated supplierOrderConfirmStatus
1 1 (null) 2013-12-10 12:35:03 true 5 8 (null) 223444 1 2
1 1 (null) 2013-12-10 12:35:03 true 1 3 (null) 223444 1 2
1 1 (null) 2013-12-10 12:35:03 true 6 4 (null) 223444 1 2
1 1 (null) 2013-12-10 12:35:03 true 5 8 (null) 223444 1 8
1 1 (null) 2013-12-10 12:35:03 true 1 3 (null) 223444 1 8
1 1 (null) 2013-12-10 12:35:03 true 6 4 (null) 223444 1 8
1 1 (null) 2013-12-10 12:35:03 true 5 8 (null) 565333 2 1
1 1 (null) 2013-12-10 12:35:03 true 1 3 (null) 565333 2 1
1 1 (null) 2013-12-10 12:35:03 true 6 4 (null) 565333 2 1
1 1 (null) 2013-12-10 12:35:03 true 5 8 (null) 565333 2 4
1 1 (null) 2013-12-10 12:35:03 true 1 3 (null) 565333 2 4
1 1 (null) 2013-12-10 12:35:03 true 6 4 (null) 565333 2 4