Strano comportamento con Access

giovedì 29 maggio 2008 - 17.48

jalifix Profilo | Newbie

Salve a tutti, sono nuovo del forum. Ho un problema con l'esecuzione di una query tra VB.NET ed MS Access attraverso gli oggetti in System.Data.OleDB. La query incriminata è questa:


SELECT hsc_CartelleClinicheD.Paziente & '/' & hsc_CartelleClinicheD.Cartella AS ReportKey, hsc_CartelleClinicheD.Paziente AS IDPaziente, hsc_CartelleClinicheD.Cartella, hsc_CartelleClinicheD.ID, Seq, hsc_CartelleClinicheD.Tipo, Ora, Farmaco, IsChemioFarmaco, SommTipo.Descrizione as TipoSomministrazione, Dosaggio, DosaggioUM.Descrizione AS DosaggioUM, Dose, DoseUM.Descrizione AS DoseUM, DilTipo.Descrizione & ' ' & QtaDiluente & ' ' & DiluenteUM.Descrizione AS Diluente, TempoInfusione, TempoUM.Descrizione AS TempoInfusioneUM, Cognome & ' ' & Nome AS Paziente, ana_Pazienti.DtNascita, hsc_CartelleCliniche.NumeroLetto, hsc_CartelleCliniche.Diagnosi, hsc_CartelleCliniche.InizioTerapia, hsc_CartelleCliniche.Altezza, hsc_CartelleCliniche.Peso, QtaDiluente * DiluenteUM.Conversione as LitriDiluente, FromPCT.Diagnosi as FromSchema
FROM ((((((((hsc_CartelleClinicheD
LEFT JOIN hsc_CartelleCliniche
ON hsc_CartelleClinicheD.Paziente = hsc_CartelleCliniche.Paziente
AND hsc_CartelleClinicheD.Cartella = hsc_CartelleCliniche.ID)
LEFT JOIN ana_Pazienti
ON hsc_CartelleClinicheD.Paziente = ana_Pazienti.ID)
LEFT JOIN tbl_UM AS DiluenteUM
ON hsc_CartelleClinicheD.UMDiluente = DiluenteUM.ID)
LEFT JOIN tbl_UM AS DoseUM
ON hsc_CartelleClinicheD.UMDose = DoseUM.ID)
LEFT JOIN tbl_UMComposte AS DosaggioUM
ON hsc_CartelleClinicheD.UMDosaggio = DosaggioUM.ID)
LEFT JOIN tbl_UM AS TempoUM
ON hsc_CartelleClinicheD.UMTempoInfusione = TempoUM.ID)
LEFT JOIN hsc_CartelleCliniche AS FromPCT
ON hsc_CartelleCliniche.FromPCTPaziente = FromPCT.Paziente
AND hsc_CartelleCliniche.FromPCTCartella = FromPCT.ID)
LEFT JOIN (SELECT * FROM tbl_Standard WHERE Tabella='Diluenti') AS DilTipo
ON hsc_CartelleClinicheD.Diluente = DilTipo.ID)
LEFT JOIN (SELECT * FROM tbl_Standard WHERE Tabella='VieTerapeutiche') AS SommTipo
ON hsc_CartelleCliniche.TipoSomministrazione = SommTipo.ID
WHERE 1=1
AND ((hsc_CartelleClinicheD.Cartella) = [@ID])
AND ((hsc_CartelleClinicheD.Paziente) = [@Paziente])
ORDER BY hsc_CartelleClinicheD.Paziente, hsc_CartelleClinicheD.Cartella, Seq, hsc_CartelleClinicheD.ID


In pratica quello che succede è che viene restituito un DataTable vuoto il che è sbagliato, perchè se eseguo la stessa query ma con questa WHERE:

WHERE 1=1
AND ((hsc_CartelleClinicheD.Paziente) = [@Paziente])
AND ((hsc_CartelleClinicheD.Cartella) = [@ID])
ORDER BY hsc_CartelleClinicheD.Paziente, hsc_CartelleClinicheD.Cartella, Seq, hsc_CartelleClinicheD.ID

e cioè scambiando solo l'ordine tra ID e Paziente, vengono restituite una decina di righe. La stessa cosa mi capita anche su altre query, mi basta scambiare l'ordine di alcuni filtri nella WHERE per farle funzionare. Il fatto è che mi piacerebbe capire il perchè di questa cosa. Spero che qualcuno di voi possa aiutarmi.

Grazie a tutti in anticipo, ciao
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5