SP con selezionee nome colonne non valido

di il
2 risposte

SP con selezionee nome colonne non valido

Ciao a tutti.
Sono nuovo di t SQL ma mi trovo a dover far evolvere un db di access a SQL server. VI spiego il problema:

questa e' la query access:
SELECT Nz(Sum(IIf([buy/Sell]="BUY",[Amount]*[price],-[Amount]*[price])),0) AS [Sum_lorda], CCur(Nz(Sum([equity_deals].[Commission]),0)) AS Commission, CCur(Nz([Sum_lorda]+[Commission],0)) AS Countervalue
FROM Equity_deals
WHERE (((Equity_deals.ValueDate)<=[Valuation Date])) 
in sostanza calcola una somma di quantita', chiamata [sum_lorda], una delle commissioni [commission] e sulla terza Colonna fa semplicemente la somma di [sum_lorda] e [commission]

questo lo script t sql:
SELECT sum(IIf([Equity_deals].[Buy/Sell]='BUY',[Amount]*[price],-[Amount]*[price])) as Somma_lorda, Sum([equity_deals].[Commission]) AS Commission, (Somma_lorda+Commission) AS Countervalue
FROM Equity_deals
WHERE (((Equity_deals.ValueDate)<='2015-03-15'))
ci sono due tipi di errore:
il primo riguarda la terza Colonna che si ottiene come Somma_lorda+commission e genera il seguente messaggio:"messaggio 207, livello 16 stato1 riga 1: il nome Colonna 'somma_lorda' non e' valido." Sembra che si incavoli perche' (Somma_lorda+Commission) li interpreta come due stringhe...
se infatti metto tra apice Somma_lorda e Commission non da errore, ma ovviamente riporta nel terzo campo "Somma_lordaCommission" che non e'cio che voglio.

il secondo errore lo genera la condizione WHERE che genera:"Messaggio 242, livello 16, stato 3, riga 1
La conversione di un tipo di dati varchar in datetime ha generato un valore non compreso nell'intervallo dei valori consentiti.
"
e questo errore non ho proprio idea di come risolverlo...
qualcuno mi sa indicare come uscirne? grazie mille!

2 Risposte

  • Re: SP con selezionee nome colonne non valido

    Nonnostante non abbia capito íl perche', il primo errore sono riuscito a risolverlo con il seguente codice:
    SELECT sum(IIf([Equity_deals].[Buy/Sell]='BUY',[Amount]*[price],-[Amount]*[price]))  as SommaLorda, Sum([equity_deals].[Commission])  AS Commission, sum(IIf([Equity_deals].[Buy/Sell]='BUY',[Amount]*[price],-[Amount]*[price]))+Sum([equity_deals].[Commission]) AS Countervalue
    FROM Equity_deals
    in sostanza gli ho rifatto fare I conti sul terzo campo, invece che richiamare I due campi SollaLorda e Commission (avevo provato a richiamarli in tutti I modi: tra "", tra'' e soprattutto tra[] ma niente).
    Se qualcuno sa spiegarmi perche' non riesco a richiamarlo direttamente, gliene sarei grato.
  • Re: SP con selezionee nome colonne non valido

    Il perché è che non puoi basare dei campi calcolati su altri campi alias, come facevi prima.
    Tutto lì.
Devi accedere o registrarti per scrivere nel forum
2 risposte