Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
| Author |
Topic |
|
Flaterik
Starting Member
26 Posts |
Posted - 2011-05-20 : 05:20:56
|
Hi people, i have a big trouble.I'm making a query that i paste in the quote. So now my problem:This is a table with a field DATADOC. In the WHERE statement i must i selectADB_TREND.dbo.DORig.Cd_DO = 'BO' but when datadoc = 2010 , ADB_TREND.dbo.DORig.Cd_DO = 'FT'.Only this field must change in the statementquote: SELECT ADB_TREND.dbo.DORig.Cd_CF, ADB_TREND.dbo.AR.Modello, ADB_TREND.dbo.DORig.Cd_MGEsercizio, SUM(CASE WHEN MONTH(DataDoc) = 1 THEN Qta ELSE NULL END) AS Gennaio, SUM(CASE WHEN MONTH(DataDoc) = 2 THEN qta ELSE NULL END) AS Febbraio, SUM(CASE WHEN MONTH(DataDoc) = 3 THEN Qta ELSE NULL END) AS Marzo, SUM(CASE WHEN MONTH(DataDoc) = 4 THEN Qta ELSE NULL END) AS Aprile, SUM(CASE WHEN MONTH(DataDoc) = 5 THEN Qta ELSE NULL END) AS Maggio, SUM(CASE WHEN MONTH(DataDoc) = 6 THEN Qta ELSE NULL END) AS Giugno, SUM(CASE WHEN MONTH(DataDoc) = 7 THEN Qta ELSE NULL END) AS Luglio, SUM(CASE WHEN MONTH(DataDoc) = 8 THEN Qta ELSE NULL END) AS Agosto, SUM(CASE WHEN MONTH(DataDoc) = 9 THEN Qta ELSE NULL END) AS Settembre, SUM(CASE WHEN MONTH(DataDoc) = 10 THEN Qta ELSE NULL END) AS Ottobre, SUM(CASE WHEN MONTH(DataDoc) = 11 THEN Qta ELSE NULL END) AS Novembre, SUM(CASE WHEN MONTH(DataDoc) = 12 THEN Qta ELSE NULL END) AS Dicembre, ADB_TREND.dbo.DORig.Cd_ARMisuraFROM ADB_TREND.dbo.DORig INNER JOIN ADB_TREND.dbo.AR ON ADB_TREND.dbo.DORig.Cd_AR = ADB_TREND.dbo.AR.Cd_ARWHERE (ADB_TREND.dbo.DORig.Cd_DO = 'FA' OR ADB_TREND.dbo.DORig.Cd_DO = 'FT') AND (ADB_TREND.dbo.AR.Cd_ARGruppo1 = '100') AND (ADB_TREND.dbo.AR.Cd_ARGruppo2 = '050' OR ADB_TREND.dbo.AR.Cd_ARGruppo2 = '100') GROUP BY ADB_TREND.dbo.DORig.Cd_CF, ADB_TREND.dbo.AR.Modello, ADB_TREND.dbo.DORig.Cd_MGEsercizio, ADB_TREND.dbo.DORig.Cd_ARMisura)
|
|
|
nigelrivett
Master Smack Fu Yak Hacker
3385 Posts |
Posted - 2011-05-20 : 05:32:03
|
| where(ADB_TREND.dbo.DORig.Cd_DO = 'BO' and datadoc <> 2010or ADB_TREND.dbo.DORig.Cd_DO = 'FT' and datadoc = 2010)....Are you sure about your where clause?I always put brackets round the "or" parts if theye are mixed with and's to highlight the operator precedence.==========================================Cursors are useful if you don't know sql.SSIS can be used in a similar way.Beer is not cold and it isn't fizzy. |
 |
|
|
Flaterik
Starting Member
26 Posts |
Posted - 2011-05-20 : 06:11:40
|
Hi nigelrivett, thank you very much for your fast and CORRECT response Work's very well!About the brackets are quite sure about that works. If you see some evident error, i correct this.These are my definitive WHERE function. quote: WHERE (ADB_TREND.dbo.AR.Cd_ARGruppo1 = '100') AND (ADB_TREND.dbo.AR.Cd_ARGruppo2 = '050' OR ADB_TREND.dbo.AR.Cd_ARGruppo2 = '100')AND(ADB_TREND.dbo.DORig.Cd_DO = 'FA' OR (ADB_TREND.dbo.DORig.Cd_DO = 'FT' and DataDoc = 2010 or ADB_TREND.dbo.DORig.Cd_DO = 'BO' and DataDoc <> 2010))
|
 |
|
|
nigelrivett
Master Smack Fu Yak Hacker
3385 Posts |
Posted - 2011-05-20 : 06:43:45
|
| Sorry - - I didn't notice the paired brackets around the first "or". Removal of the white spaces by th eforum doesn't help.==========================================Cursors are useful if you don't know sql.SSIS can be used in a similar way.Beer is not cold and it isn't fizzy. |
 |
|
|
|
|
|
|
|