久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

SQL Server:用 0 為不存在的行填充 MAX(列)值

SQL Server : populate MAX(column) value with 0 for non existing rows(SQL Server:用 0 為不存在的行填充 MAX(列)值)
本文介紹了SQL Server:用 0 為不存在的行填充 MAX(列)值的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

對于表中不存在的行,我想為 MAX_TIER 返回 0

I want to return 0 for MAX_TIER for non existing rows in table

這是我目前的代碼:

SELECT   
    LAST_YARD_BAY, LAST_YARD_ROW, MAX(LAST_YARD_TIER) as MAX_TIER
FROM
    Handlift
WHERE 
    HDCHKOUTD_OUT IS NULL 
    AND LIFLAG = 'A'
    AND LAST_YARD_PARK = 'J1'
GROUP BY 
    LAST_YARD_BAY, LAST_YARD_ROW
ORDER BY 
    LAST_YARD_BAY, LAST_YARD_ROW;

截圖顯示了部分結果:

對于 Bay 005 我有 MAX_TIER 用于 ROWS 00A00G,但是對于 Bay 007 我只有 3 行:00E00F00G.

For Bay 005 I have MAX_TIER for ROWS 00Ato 00G, but for Bay 007 I have only 3 Rows: 00E,00F and 00G.

如何為 4 個缺失的行(00A00B00C)填充 MAX_TIER00D) Bay 007 和其他缺失的行?

How can I populate MAX_TIER with value 0 for the 4 missing rows (00A, 00B, 00C and 00D) of Bay 007 and the other missing rows?

推薦答案

這就是您要找的嗎?

SELECT *
FROM T
WHERE LastYardBay = '005'
UNION
SELECT '007',
       T1.LastYardRow,
       ISNULL(T2.MaxTier, 0)
FROM 
    (
      SELECT *
      FROM T
      WHERE LastYardBay = '005'
    ) T1
    LEFT JOIN
    (
      SELECT *
      FROM T
      WHERE LastYardBay = '007'
    ) T2
ON T1.LastYardRow = T2.LastYardRow;

退貨:

+-------------+-------------+---------+
| LastYardBay | LastYardRow | MaxTier |
+-------------+-------------+---------+
|         005 | 00A         |       3 |
|         005 | 00B         |       4 |
|         005 | 00C         |       1 |
|         005 | 00D         |       1 |
|         005 | 00E         |       1 |
|         005 | 00F         |       4 |
|         005 | 00G         |       1 |
|         007 | 00A         |       0 |
|         007 | 00B         |       0 |
|         007 | 00C         |       0 |
|         007 | 00D         |       0 |
|         007 | 00E         |       5 |
|         007 | 00F         |       4 |
|         007 | 00G         |       1 |
+-------------+-------------+---------+

現場演示

更新:

因為你已經有了 '005' 你只需要一個 CROSS JOIN 然后用 IS NULL as 過濾

Since you already have '005' you need just a CROSS JOIN then filter with IS NULL as

WITH A AS
(
SELECT       T1.LastYardBay LYB1,
             T1.LastYardRow LYR1,
             T1.MaxTier MT1,
             T2.LastYardBay LYB2,
             T2.LastYardRow LYR2,
             T2.MaxTier MT2
FROM 
    (
      SELECT *
      FROM T
      WHERE LastYardBay = '005'
    ) T1
    CROSS JOIN
    (
      SELECT *
      FROM T
      WHERE LastYardBay != '005'
    ) T2
)
SELECT *
FROM T
WHERE LastYardBay = '005'
UNION
SELECT  LYB2,
        LYR1,   
        CASE WHEN LYR2 = LYR1 THEN MT2 ELSE 0 END MT
FROM A LEFT JOIN T ON A.LYB2 IS NULL;

這篇關于SQL Server:用 0 為不存在的行填充 MAX(列)值的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Converting Every Child Tags in to a Single Column with multiple Delimiters -SQL Server (3)(將每個子標記轉換為具有多個分隔符的單列-SQL Server (3))
How can I create a view from more than one table?(如何從多個表創建視圖?)
Create calculated value based on calculated value inside previous row(根據前一行內的計算值創建計算值)
How do I stack the first two columns of a table into a single column, but also pair third column with the first column only?(如何將表格的前兩列堆疊成一列,但也僅將第三列與第一列配對?) - IT屋-程序員軟件開發技
Recursive t-sql query(遞歸 t-sql 查詢)
Convert Month Name to Date / Month Number (Combinations of Questions amp; Answers)(將月份名稱轉換為日期/月份編號(問題和答案的組合))
主站蜘蛛池模板: 午夜精品久久久久久久久久久久 | 99av成人精品国语自产拍 | 欧美在线观看一区 | 日日干日日操 | 色黄网站| 韩日精品在线观看 | 欧美成人精品激情在线观看 | 一区二区三区四区毛片 | 国产精品视频在线免费观看 | 精品日韩一区二区三区av动图 | 精品99爱视频在线观看 | 四虎在线观看 | 久草网址 | 国产成人免费在线观看 | 欧美一区2区三区4区公司二百 | 日韩一区二区三区视频在线观看 | 涩涩导航 | 噜噜噜色网 | www.久久久久久久久久久 | 亚洲欧美日韩在线 | 不卡一区二区在线观看 | 在线91| 日韩欧美亚洲 | 亚洲综合天堂网 | 日韩1区2区 | 天堂久久一区 | 国产网站在线免费观看 | 久久久久久免费观看 | 久综合| 99免费在线视频 | 一区二区三区 在线 | 伊人久久免费 | 久久国产精品一区 | 日韩国产一区二区三区 | 一区二区成人 | 久久亚洲国产精品 | av免费网站在线观看 | 精品久久久久久久 | 涩涩视频网站在线观看 | 欧美一级视频在线观看 | 成人黄色在线观看 |