/ / दिनांक सीमा चयन के साथ MySQL क्वेरी, लेकिन एक कॉलम के उच्चतम मान को पकड़ने की आवश्यकता होती है जब किसी अन्य कॉलम में डुप्लीकेट होते हैं - php, mysql, sql

दिनांक सीमा चयन के साथ MySQL क्वेरी, लेकिन एक कॉलम के उच्चतम मान को पकड़ने की आवश्यकता होती है जब किसी अन्य कॉलम में डुप्लीकेट होते हैं - php, mysql, sql

मेरे पास यह प्रश्न है जो महान काम करता है जब मैं नहीं करता हूं"आईएन" क्वेरी आज़माएं। क्वेरी को उपयोगकर्ता इनपुट से दो दिनांक चर के बीच सभी पंक्तियों का चयन करने की आवश्यकता है और यह भी "" के बराबर नहीं है। मेरा लक्ष्य यह है कि अगर "item_number" कॉलम में डुप्लीकेट हैं तो मुझे केवल उच्चतम "आईडी" पंक्ति को पकड़ने की आवश्यकता है। क्या यह संभव है?

यहां मेरी क्वेरी है कि मैं कोशिश कर रहा हूं लेकिन काम नहीं कर रहा हूं:

SELECT item_number
, description
, style_number
, prod_attribute_1
, prod_attribute_2
, prod_attribute_3
, prod_attribute_4
, prod_attribute_5
, date_of_entry
, id
FROM import_items
WHERE date_of_entry between "$finalStart" and "$finalEnd"
AND TRIM(style_number) <> "") IN (SELECT item_number
, MAX(id)
FROM import_items
GROUP
BY item_number);

यहां स्थापित एक वर्गफ्लिड है: http://sqlfiddle.com/#!9/e6c36d/1

परिणाम सभी पंक्तियां होनी चाहिए, लेकिन "item_number" समान होने पर केवल उच्चतम "आईडी" चुनें।

उत्तर:

जवाब के लिए 0 № 1

धन्यवाद। मैंने अपना जवाब अपडेट कर लिया है। कृपया जांचें। उम्मीद है कि यह आपके मुद्दे को हल करेगा। अगर मुझे नहीं पता कि मैं अपना जवाब अपडेट करूंगा।

    SELECT MAX(id), item_number, style_number, date_of_entry
FROM import_items
WHERE id IN
(SELECT id FROM import_items where (date_of_entry >= "12/07/2016"
AND date_of_entry<="12/11/2016")
AND TRIM(style_number) != "" )
GROUP BY item_number;

एसक्यूएल फिल्ड लिंक http://sqlfiddle.com/#!9/0303e/14