我在英國的分銷中心工作,我最近開始使用SQL查詢直接從數據庫訪問數據。SQL查詢 - 努力寫/結構
我的任務是編寫一個查詢,給出每個通道中的位置總數(來自表locn_hdr)以及每個通道中總的位置數量。我'設法得到我需要的所有信息,但通過使用twp單獨查詢。我掙扎,它們組合成以下標題
過道 - 位置數 - 數的空位置
這兩個查詢我已經低於位置
計數的
select AISLE, COUNT(AISLE)
from LOCN_HDR LH
where LH.LOCN_CLASS = 'A'
and BAY >= '0030'
AND BAY <= '0230'
AND PICK_DETRM_ZONE LIKE 'HG%'
AND LH.AISLE <= 'QA'
group by aisle
Order by aisle;
計數的容器
SELECT aisle, COUNT(dsp_locn)
FROM locn_hdr lh
WHERE lh.locn_class = 'A'
AND bay >= '0030'
AND bay <= '0230'
AND pick_detrm_zone LIKE 'HG%'
AND lh.aisle <= 'QA'
AND NOT EXISTS
(SELECT 1
FROM wm_inventory wi
WHERE wi.location_id = lh.locn_id
AND wi.on_hand_qty > '0')
GROUP BY aisle
ORDER BY aisle;
理想情況下,印度只是想要重新編寫的sql的答案。我想了解我將來可以如何做類似的事情。
在此先感謝你們!對不起,如果我沒有提供足夠的信息,輕鬆對我我是新的!
編輯
嗨,首先感謝您的幫助!非常感謝。但是,它不能正常工作,因爲我需要它。列數(lh.aisle)計算空位數量,而不是通道中位置的總數。我不得不稍微改變SQL,因爲我收到錯誤消息,所以我暫時使用
SELECT lh.AISLE, COUNT(lh.AISLE), COUNT(wi.location_id) -- count(lh.aisle) gives me the total empty locatins. Count(wi.location_id) gives me nothing...
FROM LOCN_HDR lh
LEFT OUTER JOIN wm_inventory wi ON wi.location_id = lh.locn_id AND wi.on_hand_qty > '0'
WHERE lh.LOCN_CLASS = 'A'
AND lh.BAY BETWEEN '0030' AND '0230'
AND lh.PICK_DETRM_ZONE LIKE 'HG%'
AND lh.AISLE <= 'QA'
AND wi.location_id IS NULL -- where there is no matching record for lh.locn_id with a quantity > 0
GROUP BY lh.AISLE
ORDER BY lh.AISLE;
這給了我這太棒了空位置的計數。但是我沒有計算地點總數(空或不)。
任何更多的想法,將不勝感激!
這看起來像'SQL Server',但是它會爲指示*你正在使用的數據庫的問題添加標籤。 – levelonehuman
@levelonehuman:這實際上非常標準的SQL –
不相關,但是:你不應該比較字符串和數字,比如'wi.on_hand_qty>'0''''0''是一個字符串常量,而不是數字。 '0'是一個數字 –