Member 12336474 Ответов: 3

Как отобразить только несколько столбцов таблицы на основе данных


Consider the table below

Name partno.  sch_date    WO#   owed panels
 aa   1234     08/22/2017  121   22    26
 aa   1234     08/22/2017  222   22    27
 aa   1234     08/22/2017  242   22    27
 aa   1234     08/29/2017  152   20    24
 aa   1234     08/29/2017  167   20    24
 aa   1234     08/29/2017  202   20    26

Is it possible to display the data in such way that when i read through the data if the first partno. in the table has the number of panels  greater than owed, then i don't won't to dispaly the other partno. schedule on the same date(sch_date).

Expected Result

Name partno.  sch_date    WO#   owed panels
 aa   1234     08/22/2017  121   22    26
 aa   1234     08/29/2017  152   20    24


Что я уже пробовал:

Я не уверен, как здесь понимать функцию случая.

RedDk

Посмотрите отчетливо в бол.

3 Ответов

Рейтинг:
26

itsmypassion

Попробуйте следовать ..

select TOP 1  Name,partno,sch_date,WO#,owed,panels from TableName
ORDER BY
    ROW_NUMBER() OVER(PARTITION BY sch_date ORDER BY WO# ASC)


Рейтинг:
15

Pradeep Magati

Привет,
Проверьте приведенное ниже Решение на основе ROW_NUMBER ().

Выберите функции row_number() над (раздел по [Название],[sch_date] приказом [наименование],[sch_date]) как РН,*
В #Temp
Из #YourTable где панели & gt;задолжали

Выберите * из #Temp

Название РН обозначение# sch_date Жо# задолжал панелей
1 АА 1234 2017-08-22 00:00:00.000 121 22 26
2 АА 1234 2017-08-22 00:00:00.000 222 22 27
3 АА 1234 2017-08-22 00:00:00.000 242 22 27
1 АА 1234 2017-08-29 00:00:00.000 152 20 24
2 АА 1234 2017-08-29 00:00:00.000 167 20 24
3 АА 1234 2017-08-29 00:00:00.000 202 20 26

Выберите * из #Temp, где RN=1

Результат:

Название РН обозначение# sch_date Жо# задолжал панелей
1 АА 1234 2017-08-22 00:00:00.000 121 22 26
1 АА 1234 2017-08-29 00:00:00.000 152 20 24


Спасибо и с уважением,
Прадип Магати.


Рейтинг:
1

Moin 10918476

;WITH TempTable (Name,partno,sch_date,WO#,owed,panels, duplicateRecCount)
AS
(SELECT Name,partno,sch_date,WO#,owed,panels,ROW_NUMBER() OVER(PARTITION by Name,partno,sch_date,WO#,owed,panels ORDER BY Name)
AS duplicateRecCount FROM [Table Name]	
Select Name,partno,sch_date,WO#,owed,panels from TempTable where duplicateRecCount=1