Visualizzazione dei risultati da 1 a 10 su 16

Visualizzazione discussione

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    585

    Insert into: record doppio - miglioramento di codice

    Ciao a Tutti,

    in questi giorni ho avuto il seguente problema:

    all' esecuzione della pagina asp il record della tabella t_mrg va ad inserirsi nella tabella t_feed se e solo se in essa non esiste gia';

    il record della tabella t_mrg deve essere pero' ripetuto 2 volte uguale nella tabella t_feed; l' unica differenza tra i 2 records che vengono generati nella tabella t_feed sta nel fatto che i campi della tabella t_feed: FB01 e FB02 devono popolarsi automaticamente dei valori 'Yes' in modo alternato.

    Quindi, se il record della tabella t_mrg e' il numero 2014073 e non esiste nella tabella t_feed,

    all' esecuzione della pagina asp il cui codice e' di sotto riportato,

    si generano 2 records uguali nella tabella t_feed che presentano l' unica differenza nei campi FB01 e FB02 nel sugente modo:

    Numero ... FB01 FB02

    2014073 Yes

    2014073 Yes


    <%@ Language=VBScript %>
    <%
    Option Explicit
    Dim cn3, i, sql9
    i = 1
    '
    Set cn3 = Server.CreateObject("ADODB.Connection")
    cn3.ConnectionString = "DSN=9_feed.dsn"
    cn3.Open
    sql9 = "INSERT INTO t_feed (Numero, Nome, FB01, FB02) " & _
    "SELECT t_mrg.Numero, First(t_mrg.Nome) AS Nome, First(IIf(IsNull([t_feed.FB02]),'Yes',[t_feed.FB01])) AS FB01, First(t_feed.FB02) AS FB02 " & _
    "FROM t_mrg, t_feed " & _
    "GROUP BY t_mrg.Numero " & _
    "HAVING ((t_mrg.Numero=2014073) AND t_mrg.Numero Not In (SELECT t_feed.Numero FROM t_feed))"
    cn3.Execute sql9
    sql9 = "INSERT INTO t_feed (Numero, Nome, FB01, FB02) " & _
    "SELECT TOP 1 t_mrg.Numero, First(t_mrg.Nome) AS Nome, t_feed.FB01 AS FB01, 'Yes' AS FB02 " & _
    "FROM t_mrg, t_feed " & _
    "GROUP BY t_mrg.Numero, t_feed.FB01 " & _
    "HAVING (t_mrg.Numero=2014073) AND (SELECT Count(*) AS Conteggio FROM t_feed WHERE Numero=2014073)=" & i & ""
    cn3.Execute sql9
    cn3.Close
    '
    Set cn3 = Nothing
    %>


    Il codice postato funziona bene; solo che ho scritto questo post perche' chiedevo se c' era un modo migliore di scriverlo ...

    Nel senso:


    • mi piacerebbe che anziche' eseguire 2 volte sql9 si potessero unire i due INSERT INTO in un unico blocco di codice
    • non mi piace essere ricorso al SELECT TOP 1



    Grazie mille in anticipo !!!
    Ultima modifica di betto; 17-06-2014 a 12:35

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.