Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Very complicated SQL
Message
De
15/02/2014 13:02:20
 
 
À
15/02/2014 12:32:29
Information générale
Forum:
Microsoft SQL Server
Catégorie:
Syntaxe SQL
Versions des environnements
SQL Server:
SQL Server 2008
Application:
Web
Divers
Thread ID:
01594412
Message ID:
01594415
Vues:
57
I have this for now but there is surely a way to simply this:
IF OBJECT_ID('tempdb..#Temp') IS NOT NULL
 DROP TABLE #Temp

SELECT InvoiceDetail.NoInvoice,InvoiceDetail.Numero
 INTO #Temp
 FROM
 (SELECT MAX(InvoiceDetail.Numero) AS InvoiceDetailNumero
 FROM Invoice
 INNER JOIN InvoiceDetail ON Invoice.Numero=InvoiceDetail.NoInvoice
 WHERE Invoice.NoCompany=32
 GROUP BY InvoiceDetail.NoInvoice) Invoice2
 INNER JOIN InvoiceDetail ON Invoice2.InvoiceDetailNumero=InvoiceDetail.Numero
 WHERE InvoiceDetail.NoStatus=7 AND InvoiceDetail.AddUser=1

DECLARE @NoInvoice INT
DECLARE @NoStatus INT
DECLARE @Numero INT

WHILE (SELECT COUNT(*) FROM #Temp)>0
BEGIN

   SELECT TOP 1 @Numero=Numero,@NoInvoice=NoInvoice FROM #Temp

   IF OBJECT_ID('tempdb..#Temp2') IS NOT NULL
    DROP TABLE #Temp2
 
    SELECT TOP 1 InvoiceDetail.Numero AS InvoiceDetailNumero,InvoiceDetail.NoStatus
    INTO #Temp2
    FROM InvoiceDetail
    WHERE InvoiceDetail.NoInvoice=@NoInvoice AND InvoiceDetail.NoStatus<>7
    ORDER BY InvoiceDetail.NoInvoice

   SELECT @NoStatus=NoStatus FROM #Temp2

   IF (@NoStatus=3)
   BEGIN
      
      DELETE FROM InvoiceDetail WHERE Numero=@Numero

      UPDATE Invoice SET NoStatus=3 WHERE Numero=@NoInvoice

   END

   DROP TABLE #Temp2

   DELETE FROM #Temp WHERE Numero=@Numero
END

DROP TABLE #Temp
Michel Fournier
Level Extreme Inc.
Designer, architect, owner of the Level Extreme Platform
Subscribe to the site at https://www.levelextreme.com/Home/DataEntry?Activator=55&NoStore=303
Subscription benefits https://www.levelextreme.com/Home/ViewPage?Activator=7&ID=52
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform