Avatar billede johandysatan Novice
05. april 2013 - 13:15 Der er 2 kommentarer og
1 løsning

Parenteser omkring AND statement i MS Query

Hej
Jeg er ved at lave en søgning ned i vores BMC Remedy database. Jeg bruger en ODBC driver og MS Query til at hente data ind i Excel.

Når jeg vil lave denne søgning:
-------------------------------------------------------
SELECT Change_data_180_dage.Infrastructure_Change_ID, Change_data_180_dage.Change_Request_Status, Change_data_180_dage.Change_Request_Status
FROM Change_data_180_dage Change_data_180_dage WHERE

(
(Change_data_180_dage.Status_History_Draft_TIME<{ts '2012-01-04 11:00:00'}) AND (Change_data_180_dage.Status_History_Completed_TIME>{ts '2012-01-04 11:00:00'})
)

OR
(
(Change_data_180_dage.Status_History_Draft_TIME<{ts '2012-01-04 11:00:00'}) AND (Change_data_180_dage.Status_History_Completed_TIME Is Not Null) AND (Change_data_180_dage.Status_History_Closed_TIME>{ts '2012-01-04 11:00:00'})
)

OR

(
(Change_data_180_dage.Status_History_Draft_TIME<{ts '2012-01-04 11:00:00'}) AND (Change_data_180_dage.Status_History_Cancelled_TIME>{ts '2012-01-04 11:00:00'})
)
OR

(
(Change_data_180_dage.Status_History_Draft_TIME<{ts '2012-01-04 11:00:00'}) AND (Change_data_180_dage.Status_History_Rejected_TIME>{ts '2012-01-04 11:00:00'})
)

OR

(
(Change_data_180_dage.Status_History_Draft_TIME<{ts '2012-01-04 11:00:00'}) AND
(Change_data_180_dage.Change_Request_Status<>'Completed') AND
(Change_data_180_dage.Change_Request_Status<>'Closed') AND
(Change_data_180_dage.Change_Request_Status='Cancelled') AND
(Change_data_180_dage.Change_Request_Status='Rejected')
)
---------------------------------------

Laver MS Query den om til:

----------------------------------------------

SELECT Change_data_180_dage.Infrastructure_Change_ID, Change_data_180_dage.Change_Request_Status, Change_data_180_dage.Change_Request_Status
FROM Change_data_180_dage Change_data_180_dage WHERE (Change_data_180_dage.Status_History_Draft_TIME<{ts '2012-01-04 11:00:00'}) AND (Change_data_180_dage.Status_History_Completed_TIME>{ts '2012-01-04 11:00:00'}) OR (Change_data_180_dage.Status_History_Draft_TIME<{ts '2012-01-04 11:00:00'}) AND (Change_data_180_dage.Status_History_Completed_TIME Is Not Null) AND (Change_data_180_dage.Status_History_Closed_TIME>{ts '2012-01-04 11:00:00'}) OR (Change_data_180_dage.Status_History_Draft_TIME<{ts '2012-01-04 11:00:00'}) AND (Change_data_180_dage.Status_History_Cancelled_TIME>{ts '2012-01-04 11:00:00'}) OR (Change_data_180_dage.Status_History_Draft_TIME<{ts '2012-01-04 11:00:00'}) AND (Change_data_180_dage.Status_History_Rejected_TIME>{ts '2012-01-04 11:00:00'}) OR (Change_data_180_dage.Status_History_Draft_TIME<{ts '2012-01-04 11:00:00'}) AND (Change_data_180_dage.Change_Request_Status<>'Completed' And Change_data_180_dage.Change_Request_Status<>'Closed' And Change_data_180_dage.Change_Request_Status='Cancelled' And Change_data_180_dage.Change_Request_Status='Rejected')
------------------------------------------------------

Som ikke giver det samme resultat.

Hvordan kan jeg sikre at parenteserne omkring min AND statements bliver der??

På for hånd tak.
Avatar billede michael_stim Ekspert
05. april 2013 - 13:26 #1
Jeg havde nok fjernet alle parenteser inden for OR:


SELECT Change_data_180_dage.Infrastructure_Change_ID, Change_data_180_dage.Change_Request_Status, Change_data_180_dage.Change_Request_Status
FROM Change_data_180_dage Change_data_180_dage WHERE

(
Change_data_180_dage.Status_History_Draft_TIME<{ts '2012-01-04 11:00:00'} AND Change_data_180_dage.Status_History_Completed_TIME>{ts '2012-01-04 11:00:00'}
)

OR
(
Change_data_180_dage.Status_History_Draft_TIME<{ts '2012-01-04 11:00:00'} AND Change_data_180_dage.Status_History_Completed_TIME Is Not Null AND Change_data_180_dage.Status_History_Closed_TIME>{ts '2012-01-04 11:00:00'}
)
...
Avatar billede johandysatan Novice
08. april 2013 - 09:37 #2
MS Query bliver ved med at ændre udsagnet tilbage til udgangspunktet.
Avatar billede johandysatan Novice
01. juli 2013 - 09:15 #3
Excel er ikke optimal til at håndtere mere komplekse forespørgsler, så jeg endte med at lave 6 uafhængige forespørgsler og lægge resultaterne sammen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester