Nhờ các anh chị giúp đỡ fix câu truy vấn SQL

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

minhmee2610

Thành viên mới
Tham gia
18/9/20
Bài viết
26
Được thích
6
Mến chào các anh chị.
Hôm nay em lại tiếp tục đăng bài nhờ giúp đỡ -=.,,-=.,,
Nhờ các anh chị có thể fix một chút về câu lệnh của em để không trả về giá trị trùng lặp với.
--
SQL:
SELECT T2.[Purchase Order],T2.[Total GR] , T1.[Sum PLAN], T1.[Total DO Qty],
IIF(T2.[Total GR] > T1.[Sum PLAN], 'Tăng số lượng', IIF(T2.[Total GR] < T1.[Sum PLAN],'Giảm số lượng','')) AS [Check PO],
T1.[Note] , T1.[Distribution center], T1.[PO Status]
FROM
(SELECT [Vendor Purchase Order], SUM([STO/SO Quantity]) AS [Sum PLAN],
SUM(IIF([Del indicator for STO] = 'L',0,[DO Quantity])) AS [Total DO Qty],
IIF(SUM([DO Quantity]) >0, 'x', 'Chưa xử lý') as [Note], [Distribution center], IIF([Del indicator for STO] = 'L' OR [Del indicator for Collective PO] = 'S','PO đã bị xóa STO','') AS [PO Status]
FROM [ZRT090]
GROUP BY [Vendor Purchase Order],[Distribution center],[Del indicator for STO],[Del indicator for Collective PO] ) AS T1
LEFT JOIN
(SELECT [Purchase Order], SUM([Qty in Un of Entry]) AS [Total GR] FROM [MB51] GROUP BY [Purchase Order]) AS T2
ON T1.[Vendor Purchase Order] = T2.[Purchase Order]
ORDER BY T1.[Note] ASC, T2.[Total GR] DESC


01.png
--
Do không đính kèm được file access nên nhờ anh chị xem file từ link này:
 
Tôi không rành viết lệnh SQL nhưng thấy nó chia làm 2 dòng Giảm số lượng và Tăng số lượng theo ý đồ của bạn chứ còn gì nữa.
 
Tôi không rành viết lệnh SQL nhưng thấy nó chia làm 2 dòng Giảm số lượng và Tăng số lượng theo ý đồ của bạn chứ còn gì nữa.
Em đã tìm ra dc là do Group By cái cột Status mới bị tách làm 2 dòng, có cách nào trong SQL để check điều kiện đó không anh.
SQL:
[Del indicator for STO],[Del indicator for Collective PO]
 
Em đã tìm ra dc là do Group By cái cột Status mới bị tách làm 2 dòng, có cách nào trong SQL để check điều kiện đó không anh.
SQL:
[Del indicator for STO],[Del indicator for Collective PO]
Bạn chờ mấy thành viên rành SQL giúp nhé. Với tôi thì nhìn câu lệnh SQL, tôi không đoán được cột kết quả nào (vì không có tiêu đề cột) tương ứng với trường nào trong nào trong SQL.
 
Tôi không rành viết lệnh SQL nhưng thấy nó chia làm 2 dòng Giảm số lượng và Tăng số lượng theo ý đồ của bạn chứ còn gì nữa.
Tôi rành SQL nhưng tôi thấy thớt chập choạng quá mà còn nói chuyện viết tắt nên tôi cũng lười theo tiếp.
Tôi mách cho một lần, nhưng sẽ ngưng ở đây.

Em đã tìm ra dc là do Group By cái cột Status mới bị tách làm 2 dòng, có cách nào trong SQL để check điều kiện đó không anh.
SQL:
[Del indicator for STO],[Del indicator for Collective PO]
1. Chả có cái cột nào tên là "Status" ở đây cả. Làm việc với ngôn ngữ IT thì phải chính xác. Tôi làm sao biết trình độ tiếng Anh của bạn đến mức nào để mà đoán rằng "indicator" có phải là "status" hay không?

2. Nhóm Query thứ nhất Group By 3 tiêu chí nhiều hơn nhóm thứ hai. Khi Join lại, nếu bên thứ nhất có nhiều dòng hơn bên thứ hai thì cũng là lẽ tự nhiên.
 
1. Chả có cái cột nào tên là "Status" ở đây cả. Làm việc với ngôn ngữ IT thì phải chính xác. Tôi làm sao biết trình độ tiếng Anh của bạn đến mức nào để mà đoán rằng "indicator" có phải là "status" hay không?
Em cảm ơn anh, cái này chắc do vội quá nên em ghi kiểu một mình em hiểu.
2. Nhóm Query thứ nhất Group By 3 tiêu chí nhiều hơn nhóm thứ hai. Khi Join lại, nếu bên thứ nhất có nhiều dòng hơn bên thứ hai thì cũng là lẽ tự nhiên.
Em đã thông được phần này.
 
Web KT
Back
Top Bottom