{"id":3848,"date":"2017-08-21T14:48:47","date_gmt":"2017-08-21T14:48:47","guid":{"rendered":"https:\/\/answers.gurussolutions.com\/answers\/how-to-use-dense_rank-for-transaction-line-item-data-in-netsuite-searches-2\/"},"modified":"2026-07-28T18:26:10","modified_gmt":"2026-07-28T18:26:10","slug":"comment-utiliser-dense_rank-pour-les-donnees-des-lignes-de-transaction-dans-les-recherches-netsuite","status":"publish","type":"qa_entry","link":"https:\/\/answers.gurussolutions.com\/fr\/answers\/comment-utiliser-dense_rank-pour-les-donnees-des-lignes-de-transaction-dans-les-recherches-netsuite\/","title":{"rendered":"Comment utiliser DENSE_RANK pour les donn\u00e9es des lignes de transaction dans les recherches NetSuite"},"content":{"rendered":"","protected":false},"template":"","meta":{"_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","_kadence_starter_templates_imported_post":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","ga_subtitle":"Utilisez SuiteScript 2.x et des formules SQL pour extraire des informations sp\u00e9cifiques class\u00e9es \u00e0 partir des lignes de transaction.","ga_short_answer":"Pour r\u00e9cup\u00e9rer les donn\u00e9es des lignes de transaction class\u00e9es par ordre de rang, d\u00e9finissez des colonnes de recherche personnalis\u00e9es \u00e0 l\u2019aide du module N\/search de SuiteScript 2.x. Utilisez la fonction search.createColumn avec des formules d\u2019agr\u00e9gation int\u00e9grant DENSE_RANK (une extension Oracle SQL) pour regrouper et classer les \u00e9l\u00e9ments selon des crit\u00e8res tels que la date de transaction.","ga_scenario":"Les utilisateurs doivent extraire des informations sp\u00e9cifiques des lignes de transaction, telles que le dernier identifiant de transaction, la date, la quantit\u00e9 ou le taux pour chaque article, en fonction d\u2019un crit\u00e8re de classement tel que la date de transaction. Cela n\u00e9cessite <a class=\"ga-interlink\" href=\"https:\/\/answers.gurussolutions.com\/fr\/answers\/how-to-apply-advanced-filtering-with-summary-formulas-in-netsuite-saved-searches\/\">des fonctionnalit\u00e9s de recherche avanc\u00e9es allant au-del\u00e0 des filtres de recherche standard de NetSuite<\/a>.","ga_solution":"Pour ce faire, une requ\u00eate SuiteScript 2.x doit \u00eatre construite \u00e0 l\u2019aide de d\u00e9finitions de colonnes sp\u00e9cifiques. La solution consiste \u00e0 utiliser search.createColumn pour d\u00e9finir chaque colonne de sortie souhait\u00e9e, en int\u00e9grant <a class=\"ga-interlink\" href=\"https:\/\/answers.gurussolutions.com\/fr\/answers\/how-to-calculate-months-between-a-customers-last-and-second-to-last-sale\/\">des fonctions d\u2019agr\u00e9gation avec DENSE_RANK<\/a> afin de classer et de s\u00e9lectionner les donn\u00e9es pertinentes. La syntaxe keep(dense_rank last order by {trandate}), une extension d\u2019Oracle SQL, est utilis\u00e9e dans la formule pour s\u00e9lectionner la valeur appropri\u00e9e en fonction de son classement par date de transaction.\n\nL\u2019extrait de code SuiteScript 2.x suivant illustre les d\u00e9finitions de colonnes requises :\n```\nvar columns = [];\ncolumns.push(search.createColumn({name: 'item', summary: search.Summary.GROUP}));\ncolumns.push(search.createColumn({name: 'formulatext', summary: search.Summary.MAX, formula: \"max({tranid}) keep(dense_rank last order by {trandate})\"}));\ncolumns.push(search.createColumn({name: 'formuladate', summary: search.Summary.MAX, formula: \"max({trandate}) keep(dense_rank last order by {trandate})\", sort: search.Sort.ASC}));\ncolumns.push(search.createColumn({name: 'formulanumeric', summary: search.Summary.MAX, formula: \"max({quantity}) keep(dense_rank last order by {trandate})\"}));\ncolumns.push(search.createColumn({name: 'formulacurrency', summary: search.Summary.MAX, formula: \"max({rate}) keep(dense_rank last order by {trandate})\"}));\n```","ga_source_author":"","ga_source_author_email":"","ga_date_original":"2017-08-21T16:48:47+02:00","ga_date_verified":"2026-07-05","ga_source_subject":"How to use dense rank to fetch specific information on transaction line items?","ga_ans_id":"ANS-0189","ga_publish_decision":"publish_with_edits","ga_staleness_risk":"high","ga_review_priority":"spot_check","ga_tier2_verdict":"partially_outdated","ga_tier2_concerns":"The use of `nlobjSearchColumn` is from SuiteScript 1.0, which is largely superseded by SuiteScript 2.x. Current SuiteScript uses the `N\/search` module and `search.createColumn` to define search columns.; The `setSort(true)` method is specific to SuiteScript 1.0. In SuiteScript 2.x, sorting is typically defined using a `sort` property within the `search.createColumn` options.; While the `DENSE_RANK()` function is still supported in NetSuite search formulas, the specific `keep(dense_rank last order by {trandate})` syntax, though based on Oracle SQL, is not the most commonly documented or exemplified method in current NetSuite resources, which often show `DENSE_RANK() OVER (PARTITION BY ... ORDER BY ...)` for analytic functions.","ga_final_category":"Saved Searches & Formulas","footnotes":""},"ga_category":[91,3,91],"ga_audience":[10],"ga_difficulty":[94],"class_list":["post-3848","qa_entry","type-qa_entry","status-publish","hentry","ga_category-recherches-enregistrees-et-formules","ga_category-saved-searches-formulas","ga_audience-developer-suitescript","ga_difficulty-avance"],"taxonomy_info":{"ga_category":[{"value":91,"label":"Recherches enregistr\u00e9es et formules"},{"value":3,"label":"Saved Searches & Formulas"},{"value":91,"label":"Recherches enregistr\u00e9es et formules"}],"ga_audience":[{"value":10,"label":"Developer\/SuiteScript"}],"ga_difficulty":[{"value":94,"label":"Avanc\u00e9"}]},"featured_image_src_large":[],"author_info":[],"comment_info":"","_links":{"self":[{"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/qa_entry\/3848","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/qa_entry"}],"about":[{"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/types\/qa_entry"}],"version-history":[{"count":1,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/qa_entry\/3848\/revisions"}],"predecessor-version":[{"id":5769,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/qa_entry\/3848\/revisions\/5769"}],"wp:attachment":[{"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/media?parent=3848"}],"wp:term":[{"taxonomy":"ga_category","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_category?post=3848"},{"taxonomy":"ga_audience","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_audience?post=3848"},{"taxonomy":"ga_difficulty","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_difficulty?post=3848"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}