2011-12-01 12 views
9

मैं अभी पंक्ति को कैसे प्राप्त कर सकता हूं?पंक्तियों का चयन करें जो अभी डाले गए हैं

INSERT INTO LETTRE_VOIT 
select rsVoit.NOID, NO_ORDRE, rsOrdre.CODE_DEST, rsOrdre.MODAL_MODE, rsOrdre.MODAL_PORT, 
CASE rsOrdre.MODAL_PORT 
      WHEN 'false' THEN 'D' 
      ELSE 'P' 
     END, 
rsOrdre.LIVRS_EXPRS, 
CASE rsOrdre.LIVRS_EXPRS 
      WHEN 'false' THEN 'L' 
      ELSE 'E' 
     END, 
    rsOrdre.ENLEV_UNITE, LIBELLE, NBR_COLIS,POID,ENLEV_CREMB,ENLEV_DECL 
from ORDRE rsOrdre 
inner join 
(
    select CODE_DEST,MODAL_MODE, MODAL_PORT, LIVRS_EXPRS,ENLEV_UNITE, ROW_NUMBER() over (order by CODE_DEST) as NOID 
    from ORDRE 
    group by CODE_DEST,MODAL_MODE,MODAL_PORT,LIVRS_EXPRS,ENLEV_UNITE 
) rsVoit on rsVoit.CODE_DEST = rsOrdre.CODE_DEST and rsVoit.MODAL_MODE = rsOrdre.MODAL_MODE 
and rsVoit.MODAL_PORT = rsOrdre.MODAL_PORT and rsVoit.LIVRS_EXPRS = rsOrdre.LIVRS_EXPRS 
and rsVoit.ENLEV_UNITE = rsOrdre.ENLEV_UNITE 

LEFT JOIN T_UNITE ON rsOrdre.ENLEV_UNITE = T_UNITE.NOID 
WHERE (STATUT_ORDRE = 3) AND IS_PRINT = 'false' AND (TRANSPORTEUR IN (SELECT ParsedString From dbo.ParseStringList(@Trans))) 
order by rsVoit.NOID, NO_ORDRE 

SELECT * FROM LETTRE_VOIT WHERE ??? 

उदाहरण के लिए:

2 डाला, यह 2

लौट सकते हैं और फिर मैं 3 डाला, मैं वापसी 3 के बजाय 5 पंक्तियों की चाहते हैं।

अग्रिम धन्यवाद।

Stev

पुनश्च: हो सकता है मैं एक संग्रहीत प्रक्रिया का उपयोग करने की आवश्यकता है?

+2

जो आरडीबीएमएस शीर्ष कीवर्ड के साथ संख्या प्रदान कर सकते हैं? ..... –

+0

एसक्यूएल सर्वर 2008 – user609511

उत्तर

16

मैं 100% यकीन नहीं वास्तव में क्या आप वापस चाहते हैं कर रहा हूँ .... लेकिन एसक्यूएल सर्वर एक OUTPUT खंड है कि यह कर सकते हैं उत्पादन सामान INSERT और UPDATE और DELETE बयानों से:

INSERT INTO dbo.YourTable(col1, col2, ..., colN) 
OUTPUT Inserted.Col1, Inserted.IDCol, Inserted.Col17 
VALUES(val1, val2, ...., valN) 

यहाँ, आप ' IDCol (उदाहरण के लिए एक आईएनटी पहचान कॉलम), Col1 और Col17 के लिए मान और सम्मिलित मान डालें।

यदि एमजीएमटी स्टूडियो में आपके ग्रिड में परिणाम वापस प्राप्त करना पर्याप्त है - तो OUTPUT खंड का उपयोग करें! और पढ़ें about the OUTPUT clause on Books Online

+1

धन्यवाद कि मैं जो चाहता हूं वह बेहद कम है। – user609511

2

उन्हें डालने से पहले एक वैरिएबल में रिकॉर्ड्स को सहेजने या डेट फ़ील्ड जोड़ने और तारीख तक उन्हें पुनर्प्राप्त करने के बारे में कैसे?

+0

खराब विचारधारा नहीं है, मैं इसके बारे में सोचूंगा – user609511

0

आप एसक्यूएल सर्वर

उपयोग कर रहे हैं और तुम्हें पता है कि कितने पंक्ति सम्मिलित तो जाना के माध्यम से

SELECT top 2 * FROM LETTRE_VOIT order by primaryKeyId desc 

2 के स्थान पर डाला पंक्ति की संख्या में डाला है।

यह आपको मदद मिल सकती है हो तुम डाला पंक्तियों की संख्या पता है, और फिर आप

+0

खराब विचारधारा नहीं, समस्या मुझे नहीं पता कि कितनी पंक्ति डाली गई है। इसका मतलब है कि मैंने एसक्यूएल को बनाया है: 1. डालने और वापस करने के लिए कितनी पंक्ति डाली गई है 2. शीर्ष – user609511

+0

चुनें, फिर से जाएं, @coconut उत्तर – subodh

+0

यह तब तक काम नहीं करेगा जब तक आप यह नहीं जानते कि आप कितनी पंक्तियां डाल रहे हैं (कर सकते हैं ' टॉप में एक चर का उपयोग नहीं करते हैं)। – rainabba

संबंधित मुद्दे