Re: Ren MYSQL fråga ang IF satser och datu m beräkningar

2004-05-08 tråd Tony Andersson

Fråga: Vad ska du använda fjärde kolumnen till (den som inte har nåt
namn i exemplet, men vi kan kalla den 'Something_5' ;-)?
Om du bara ska använda den för att testa om det är rätt dag / månad
för att posten ska användas, så är väl det enklaste sättet att låta
databasen ta hand om det och bara returnera de poster du vill ha?
Om du tänker dig hur en if-elsesats kommer att se ut i
förlängningen, när du vill kolla efter den hundrade
sexmånadersperioden, så blir det en lite otymplig SQL-sats du får.

Om vi antar att du endast vill kolla om datumet ligger i en jämn
sexmånadersperiod bakåt, så borde du kunna lösa det med en WHERE
klausul, ungefär så här:

SELECT a AS vettigt_namn_1, b as vettigt_namn_2
FROM vettigt_tabellnamn
 WHERE MOD(PERIOD_DIFF(DATE_FORMAT(c, '%Y%m%d'),
 DATE_FORMAT(CURDATE(), '%Y%m%d')),6) = 0;

Detta baserat på antagandet att du vill räkna kalendermånader och inte
nånting bokföringsobskyrt som 30 dagarsperioder. ;-)
c är alltså namnet på den kolumn du vill matcha kalenderkollen mot.
Det blir lite rörigt eftersom man måste göra om datumen till strängar
för PERIOD_DIFF(). Sen bara kollar vi om vi får nån rest vid division
med 6. Får vi inte det så är det exakt 6, 12, 18, 24 o.s.v. månader
sen.
Vill du se om händelsen inträffar under den närmaste månaden? Byt ut =
0 mot = 1. Så här:

SELECT a AS vettigt_namn_1, b as vettigt_namn_2
FROM vettigt_tabellnamn
 WHERE MOD(PERIOD_DIFF(DATE_FORMAT(c, '%Y%m%d'),
 DATE_FORMAT(CURDATE(), '%Y%m%d')),6) = 1;

Just ja, du kanske bara vill ha med de händelser som inträffar under
eller efter dagens datum i varje månad också? Då lägger vi till en
WHERE sats med DAYOFMONTH(): DAYOFMONTH(c) = DAYOFMONTH(CURDATE())
Så hela satsen ser ut så här:

SELECT a AS vettigt_namn_1, b as vettigt_namn_2
FROM vettigt_tabellnamn
 WHERE MOD(PERIOD_DIFF(DATE_FORMAT(c, '%Y%m%d'),
 DATE_FORMAT(CURDATE(), '%Y%m%d')),6) = 1
 AND
 DAYOFMONTH(c) = DAYOFMONTH(CURDATE());

Lycka till!
__
/ony
---
Thursday, May 6, 2004, 10:40:17 AM, you wrote:

 Hej

 Försöker köra ett IF statement i MYSQL men det verkar inte fungera.

 Jag kör följande

 USE databas
 SELECT Item_A AS 'Something 1',
 Item_B AS 'Something 2',
 Item_C AS 'Something 3',
 INTERVAL 6 MONTH + Item_B AS 'Something 4',
 BEGIN IF CURDATE() = INTERVAL 6 MONTH + Item_C THEN SELECT INTERVAL 12 
 MONTH + Item_C
 [ELSEIF CURDATE() = INTERVAL 12 MONTH + Item_C THEN SELECT INTERVAL 18 
 MONTH + Item_C]
 ELSE INTERVAL 6 MONTH + Item_C)
 END IF
 FROM Table ;

 Vad jag vill göra är följande;

 Jag har en post Item_C som är ett datum. Sex månader efter Item_C 
 skall en händelse inträffa, sedan skall den händelsen fortsätta att 
 inträffa var 6:e månad intill dess att den post som Item_C är kopplad
 till får status Upphörd.

 Med IF satsen har jag försöker jag åstadkomma följande;
 Om dagensdatum är större än eller lika med Item_C + 6 månader då skall i
 stället Item_C + 12 månader osv användas.

 Tanken är att om Item_C + 6 månader ger ett resultat som är dåtid dvs
 ligger i tiden före dagens datum då skall i stället närmast period efter
 dagens datum sökas och visas.

 Nästa steg är att bara visa resultatet om föregående stycke är lika med
 att resultat infaller under nästkommande månad.

 Det var lite invecklat det här...men om någon har lust eller känner sig
 hugad att bidra med synpunkter osv så tas det tacksamt emot.

 Thomas






Ren MYSQL fråga ang IF satser och dat um beräkningar

2004-05-06 tråd Thomas Nyman

Hej

Försöker köra ett IF statement i MYSQL men det verkar inte fungera.

Jag kör följande


USE databas
SELECT Item_A AS 'Something 1',
Item_B AS 'Something 2',
Item_C AS 'Something 3',
INTERVAL 6 MONTH + Item_B AS 'Something 4',
BEGIN IF CURDATE() = INTERVAL 6 MONTH + Item_C THEN SELECT INTERVAL 12 MONTH + 
Item_C
[ELSEIF CURDATE() = INTERVAL 12 MONTH + Item_C THEN SELECT INTERVAL 18 MONTH + 
Item_C]
ELSE INTERVAL 6 MONTH + Item_C)
END IF
FROM Table ;


Vad jag vill göra är följande;

Jag har en post Item_C som är ett datum. Sex månader efter Item_C 
skall en händelse inträffa, sedan skall den händelsen fortsätta att 
inträffa var 6:e månad intill dess att den post som Item_C är kopplad 
till får status Upphörd.


Med IF satsen har jag försöker jag åstadkomma följande;
Om dagensdatum är större än eller lika med Item_C + 6 månader då skall i 
stället Item_C + 12 månader osv användas.


Tanken är att om Item_C + 6 månader ger ett resultat som är dåtid dvs 
ligger i tiden före dagens datum då skall i stället närmast period efter 
dagens datum sökas och visas.


Nästa steg är att bara visa resultatet om föregående stycke är lika med 
att resultat infaller under nästkommande månad.


Det var lite invecklat det här...men om någon har lust eller känner sig 
hugad att bidra med synpunkter osv så tas det tacksamt emot.


Thomas



Mysql fråga

2002-06-24 tråd Lando








Hejsan



Jag har en liten fråga ang. Mysql, jag installerade precis Woody  tidigare har jag
alltid installerat apache, php4  mysql ifrån source.

Men idag gjorde jag det ifrån apt-get, allting fungerar super förrutom
Mysql:en som trilskas nått
enormt. Jag har absolut inga rättigheter 

nånstans på den, jag kan inte en logga på. Nån
som har nån aning vad jag kan ha gjort för fel? 



Fel meddelandet:

mysqladmin: connect to
server at 'localhost' failed

error: 'Access
denied for user: '[EMAIL PROTECTED]' (Using password:
YES)'



Mvh.



/-Lando












Re: Mysql fråga

2002-06-24 tråd Peter Mathiasson
On Mon, Jun 24, 2002 at 11:27:05AM +0200, Lando wrote:
 Fel meddelandet:
 mysqladmin: connect to server at 'localhost' failed
 error: 'Access denied for user: '[EMAIL PROTECTED]' (Using password: YES)'

Default installationen av mysql har inget lösenord på root kontot. Om du
inte har satt ett själv skulle jag rekomendera att logga in utan
lösenord.

-- 
Peter Mathiasson, peter at mathiasson dot nu, http://www.mathiasson.nu
GPG Fingerprint: A9A7 F8F6 9821 F415 B066 77F1 7FF5 C2E6 7BF2 F228


pgpJPCtCCCTxO.pgp
Description: PGP signature


RE: Mysql fråga

2002-06-24 tråd Lando
Jag har försökt köra /usr/bin/mysqladmin -u root password 'new-password'
som installationen säger men får fortfarande samma fel. När jag har
gjort detta innan så har det ju fungerat direkt :( 

Fel meddelande:
/usr/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user: '[EMAIL PROTECTED]' (Using password: NO)'


/-Lando

-Original Message-
From: Peter Mathiasson
[mailto:[EMAIL PROTECTED] 
Sent: den 24 juni 2002 11:35
To: debian-user-swedish@lists.debian.org
Subject: Re: Mysql fråga

On Mon, Jun 24, 2002 at 11:27:05AM +0200, Lando wrote:
 Fel meddelandet:
 mysqladmin: connect to server at 'localhost' failed
 error: 'Access denied for user: '[EMAIL PROTECTED]' (Using password:
YES)'

Default installationen av mysql har inget lösenord på root kontot. Om du
inte har satt ett själv skulle jag rekomendera att logga in utan
lösenord.

-- 
Peter Mathiasson, peter at mathiasson dot nu, http://www.mathiasson.nu
GPG Fingerprint: A9A7 F8F6 9821 F415 B066 77F1 7FF5 C2E6 7BF2 F228



--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Mysql fråga

2002-06-24 tråd David Röhr
On Mon, 24 Jun 2002 [11:52],
Lando ([EMAIL PROTECTED]) wrote:

 Jag har försökt köra /usr/bin/mysqladmin -u root password 'new-password'
 som installationen säger men får fortfarande samma fel. När jag har
 gjort detta innan så har det ju fungerat direkt :( 
 
 Fel meddelande:
 /usr/bin/mysqladmin: connect to server at 'localhost' failed
 error: 'Access denied for user: '[EMAIL PROTECTED]' (Using password: NO)'

Första gången skriver du att du får (Using password: YES), nu säger du att
du får (Using password: NO), hur ska du ha det egentligen? (;

Är det så att du satt ett lösenord med mysqladmin. Så får du antingen ha
en ~/.my.cnf där ditt lösenord är skrivet. (följ exemplet i
/etc/mysql/my.cnf). Eller logga in med.

mysql -u root -p

Har du satt ett lösenord med mysqladmin, och inte är root, (men använder
-u root), så kommer du behöva använda flaggan -p för att skriva in ditt
tidigare pass, för att sedan kunna byta.


/d

-- 
... david röhr  |  o_
.. unix systems consultant  | o/  /\   SCNA, SCSA  
. qbranch system management | /|_, \\   LCP Certified.
www.qbranch.se/
  `


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]