Pytanie : Jak I Rozdawać z Nieobowiązujący Wartość w SQL Pivot Zapytanie

I biegać zapytanie miesięczny streszczenie sprzedaż klient pivot w SQL 2008.  Mój problem być że gdy I próbować miesięczny rezultat dla suma w Coldfusion, I dostawać błąd należny nieobowiązujący wartość.  SQL pozwolić isnull w the pivot teren, i ono pracować w the dane teren ponieważ tam  być czasem żadny sprzedaż w miesiąc dla klient, więc ono nigdy przetwarzać the miesiąc the nieobowiązujący wartość zero.  I doceniać jakaś rada na z to na lub the SQL lub CF popierać kogoś.  Thanks

declare @rep int
set @rep = 999999

SELECT *
FROM (
SELECT
contacts.first_name + '' + contacts.last_name Sprzedawca,
ROK (invoice_date) [Rok],
SKRZYNKA MIESIĄC (invoice_date)
GDY (1) WTEDY 'January'< br/> GDY 2 WTEDY 'February'< br/> GDY 3 WTEDY 'March'< br/> GDY 4 WTEDY 'April'< br/> GDY 5 WTEDY 'May'< br/> GDY 6 WTEDY 'June'< br/> GDY 7 WTEDY 'July'< br/> GDY 8 WTEDY 'August'< br/> GDY 9 WTEDY 'September'< br/> GDY 10 WTEDY 'October'< br/> GDY 11 WTEDY 'November'< br /> GDY 12 WTEDY 'December'< br/> KOŃCÓWKA [Miesiąc],
invoice_hdr.customer_id,
customer.customer_name,
isnull ((total_amount - zafrachtowanie), (0)) total_amount
OD invoice_hdr (nolock)
łączyć klient (nolock) na invoice_hdr.customer_id = customer.customer_id
łączyć kontakt (nolock) na contacts.id = invoice_hdr.salesrep_id
DOKĄD rok (invoice_date) = 2010 i invoice_hdr.salesrep_id = @rep
) SalesSummary
PIVOT
(
SUMA (total_amount)
DLA [Miesiąc] WEWNĄTRZ (
[Styczeń], [Luty], [March], [Kwiecień] ,
[Maj], [Czerwiec], [Lipiec], [August],
[Wrzesień], [Październik], [November], [December]
)
) JAKO PivotTable
ORDER Sprzedawca, customer_name, customer_id, [Rok] desc

Odpowiedź : Jak I Rozdawać z Nieobowiązujący Wartość w SQL Pivot Zapytanie

Cześć learningunix,

the linia sprawdzać jeżeli the być bajt "num" być "(1)".

"&num" być pointer the pamięć adres dokąd the pierwszy bajt "num" przebywać. The "(char*)" ciskać ten pointer "&num" (che być pointer int) pointer. Ponieważ char być jeden bajt dane typ dodzwonienie który "pointer" z "*" dostęp the pierwszy bajt the int. W mały endian ten bajt musieć "(1)" dla i "int" che być "(1)" - w duży endian the pierwszy bajt być "(0)" ponieważ the mały znaczący bajt być the najwięcej prawy jeden…

Mieć Nadzieję że pomoc,

ZOPPO

Inne rozwiązania  
 
programming4us programming4us