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

T-SQL查詢矩陣表的自由位置

T-SQL Query a matrix table for free position(T-SQL查詢矩陣表的自由位置)
本文介紹了T-SQL查詢矩陣表的自由位置的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我正在嘗試為具有如下架構的矩陣表構建查詢:

I'm trying to build a query for a matrix table which has a schema like this:

X   | Y   | Z   | Disabled   | OccupiedId |
--------------------------------------------
1     1     1       0            NULL
1     2     1       0            NULL
1     3     1       1            NULL
1     4     1       0               1
1     5     1       0               2
1     6     1       0               3
1     7     1       0               4
1     1     2       0            NULL
1     2     2       0            NULL
1     3     2       0            NULL
1     4     2       0            NULL
1     5     2       0            NULL
1     6     2       0            NULL
1     7     2       0            NULL

我想為 X、Z 分組并找到 Y 上的第一個可用位置.無論如何可用是未禁用和未占用.

I want to group for X, Z and find the first available position on Y. Available by all means is NOT Disabled and NOT Occupied.

在提供的示例中,此查詢應返回:

In the example provided this query should return:

X   | Z   | FreeY
--------------------------------------------
 1     1     2
 1     2     7

考慮到每個 (X, Z) 從末尾開始填充(MAX Y 是常數),查詢應該選擇第一個空閑的 Y(或最后一個占用的 Y)

The query should select the first free Y (or the last occupied Y) considering that each (X, Z) are filled starting from the end (MAX Y is constant)

我嘗試了不同的方法但沒有成功:(任何建議都非常感謝!親切的問候,D.

I've tried different approach unsuccessfully :( Any suggestions is highly appreciated! Kind Regards, D.

推薦答案

對于您的編輯(disabled=bit 列),此查詢顯示 lastOccupiedID 和 firstFreeY

For your edit (disabled=bit column), this query shows lastOccupiedID as well as firstFreeY

  select x, z,
         max(case when disabled=1 or occupiedid is not null
             then Y else 0 end) lastOccupiedPosition,
         maX(case when disabled=0 AND occupiedid is null
             then Y else 0 end) firstFreeY
    from matrix
group by x, z
order by x, z;

<小時>SQL 小提琴

MS SQL Server 2008 架構設置:

create table matrix(
X int  , Y int  , Z int  , Disabled varchar(5)  , OccupiedId int );
insert matrix values
(1    , 1   , 1   , 'True'       , NULL      ),
(1    , 1   , 2   , 'False'      , NULL      ),
(1    , 1   , 3   , 'False'      , NULL      ),
(1    , 1   , 4   , 'False'      , NULL      ),
(1    , 2   , 1   , 'False'      , NULL      ),
(1    , 2   , 2   , 'False'      , NULL      ),
(1    , 2   , 3   , 'False'      , 123       ),
(1    , 2   , 4   , 'False'      , NULL      );

查詢 1:

  select x, z,
         max(case when disabled='true' or occupiedid is not null
             then Y else 0 end) lastOccupiedPosition
    from matrix
group by x, z
order by x, z

結果:

| X | Z | LASTOCCUPIEDPOSITION |
--------------------------------
| 1 | 1 |                    1 |
| 1 | 2 |                    0 |
| 1 | 3 |                    2 |
| 1 | 4 |                    0 |

這篇關于T-SQL查詢矩陣表的自由位置的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持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)(將月份名稱轉換為日期/月份編號(問題和答案的組合))
主站蜘蛛池模板: 日韩av在线免费 | 天天综合久久 | 欧美综合在线视频 | 国产成人精品999在线观看 | 成人精品视频在线观看 | 亚洲一区二区在线免费观看 | 午夜精品久久久久久久星辰影院 | 久久久久久综合 | 在线伊人网 | 国产一区二区三区四区三区四 | 九九九视频在线观看 | 久久天天躁狠狠躁夜夜躁2014 | 91极品视频 | 精品国产一级 | 九色在线观看 | 99久热在线精品视频观看 | 亚洲一二三在线观看 | 日本精品裸体写真集在线观看 | 18av在线播放 | 亚洲综合五月天婷婷 | 一区二区三区在线播放 | 黄色免费av| 亚洲视频中文字幕 | 国内精品一区二区 | 久久久久久影院 | 欧美国产在线一区 | 亚洲精品在线国产 | 日韩一区二区视频 | 中文字幕免费在线 | 国产中文视频 | 成人日韩av | 欧美成ee人免费视频 | 午夜精品福利视频 | 一区二区三区精品在线视频 | 欧美日韩综合 | 欧美成人手机在线 | 两性午夜视频 | 91小视频在线 | 久久成人18免费网站 | 欧美在线视频一区二区 | 国产在线一区二区三区 |