2017-08-04 1 views
-1

je enregistrer comme ci-dessousSélectionnez Max Prix à partir de différentes mesures

Code Name Customer Price Measure Type Retail Price Measure Type 
D035 ALU 8.00    F    8.00   F 
D035 ALU 9.00    F    NULL   NULL 

Je souhaite choisir le prix maximum du haut dossier, comment je peux faire? L'enregistrement prévu

Code Name Customer Price Measure Type Retail Price Measure Type 
D035 ALU 9.00    F    8.00   F 

J'essaie de sélectionner le prix Max sans groupe par le type de mesure et rejoindre le résultat sélectionné avec le groupe par type de mesure, mais il ne semble pas comme prévu.

+0

Étiquetez votre question avec la base de données que vous utilisez. –

Répondre

1

La méthode ANSI SQL serait order by et fetch first 1 row only:

select t.* 
from t 
order by t.retail_price desc nulls last 
fetch first 1 row only; 

Toutes les bases de données prennent en charge ces constructions, mais vous pouvez généralement faire quelque chose de similaire.

0

Je voudrais dire. Votre prix de vente au détail est la valeur décimale, puis NULL. L'insertion NULL n'est pas possible dans le type de données décimal ou numérique. Donc, je suppose, vous avez un type de données varchar de celui-ci.

Vous avez également utilisé deux colonnes avec le même nom [Type de mesure]. J'ai changé Little Name pour mieux comprendre.

Select * 
From [YourTableName] 
GROUP By [Code] 
,[Name],[Customer Price], [Measure Type], [Retail Price], [Measrue Type] 
HAVING MAX([Customer Price])=(Select TOP 1 MAX([Customer Price]) From [YourTableName]) 

Comme vous n'avez pas de clé primaire. Donc, nous ne pouvons pas aller avec JOIN. Ainsi, c'est la solution de votre question.